2016-06-11 8 views
2

xamarinのカスタムXIBからビューを作成して読み込むことはできますか? Objective-Cで は次のようである:XIBをViewController Xamarinにロードしますか?

self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
self.window.rootViewController = self.viewController; 

答えて

1

1 - あなたのXIBファイル(例MYVIEW)を作成します。

2 - XIBファイルに関連した.csファイルでは、この静的クリエータメソッドを追加:

partial class MyView : UIView 
    { 
     public MyView (IntPtr handle) : base (handle) 
     {  
     } 

     public static MyView Create() 
     {  
      var arr = NSBundle.MainBundle.LoadNib ("MyView", null, null); 
      var v = Runtime.GetNSObject<SomeView> (arr.ValueAt(0)); 

      return v; 
     } 
    } 

3 - ViewControllerMyViewを追加する:

public partial class ViewController : UIViewController 
{ 
    MyView v; 
    public ViewController (IntPtr handle) : base (handle) 
    { 
    } 

    public override void ViewDidLoad() 
    { 
     base.ViewDidLoad(); 

     v = MyView.Create(); 
     v.Frame = View.Frame; 
     View.AddSubview (v); 
    } 
} 

あなたはhere詳細を読むことができます。

+0

staticメソッドCreateは静的コンストラクタではありません。 – Grigory

+0

ここでのアイデアは静的なコンストラクタではなく、静的な方法でxibを作成することです。 – jzeferino

+0

私は知っています。 Createメソッドは静的なコンストラクタであると書いてあります。そうではありません。これは、C#の観点から見た通常の静的メソッドです。 – Grigory

関連する問題