「Xamarin.iOSのiOSデザイナーでカスタムコントロールを使用する」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
[[Xamarin.iOS]]に搭載されるiOSデザイナーでは、標準コンポーネント(コントロール)に加え、自作のコンポーネントやXamarin Component Storeは販売配布されているコンポーネントを使用できるようだ。
+
Xamarin.iOSに搭載されるiOSデザイナーでは、標準コンポーネント(コントロール)に加え、自作のコンポーネントやXamarin Component Storeは販売配布されているコンポーネントを使用できるようだ。
 
<ref>http://developer.xamarin.com/guides/ios/user_interface/designer/custom_components/</ref>
 
<ref>http://developer.xamarin.com/guides/ios/user_interface/designer/custom_components/</ref>
  
41行目: 41行目:
 
         }
 
         }
 
     }
 
     }
</source>
 
 
==ライブラリ化==
 
カスタムコントロールを別プロジェクトとしてライブラリ化すると実行時にエラーログが表示され正常に動かない。
 
*「Unknown class MyClass in Interface Builder file.」
 
これはxibファイル(storyboardファイル)がロードされたタイミングで外部アセンブリがロードされていないないため発生しているようだ。
 
外部アセンブリはそこに含まれるクラスやメソッドなどの何かしらを最初に使ったタイミングでロードされるようだ。
 
 
そこでライブラリプロジェクトに以下のような静的ダミーメソッド・ダミークラスを追加しておき、Xamarin.iOSプロジェクトのMainメソッドから真っ先に呼び出してやることで解決する。もっとまともな解決策があるのかもしれないが知らん。
 
 
ライブラリプロジェクト側
 
<source lang="csharp">
 
namespace MonoBook.iOS
 
{
 
    public static class Loader
 
    {
 
        public static bool Link() => true;
 
    }
 
}
 
</source>
 
 
Xamarin.iOSプロジェクト側
 
<source lang="csharp">
 
namespace IOSApp01
 
{
 
    public class Application
 
    {
 
        // This is the main entry point of the application.
 
        static void Main(string[] args)
 
        {
 
            // ダミーメソッドを呼び出す
 
            MonoBook.iOS.Loader.Link();
 
 
            // if you want to use a different Application Delegate class from "AppDelegate"
 
            // you can specify it here.
 
            UIApplication.Main(args, null, "AppDelegate");
 
        }
 
    }
 
}
 
 
</source>
 
</source>
  

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: