2016-06-11 4 views
2

Можно создать и загрузить представление из пользовательского XIB в xamarin? В Objective-C, как:Загрузить XIB в ViewController Xamarin?

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

ответ

1

1 - Создайте файл XIB (пример MyView).

2 - в .cs, связанные с файлом XIB добавить этот статический метод создатель:

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 - Добавить MyView в ViewController:

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 method Create - не статический конструктор. – Grigory

+0

Идея здесь заключается в создании xib через статический метод, а не из статического конструктора. – jzeferino

+0

Я знаю. Вы написали, что метод Create является статическим конструктором. Это не так. Это обычный статический метод с точки зрения C#. – Grigory

Смежные вопросы