2012-03-25 29 views
5

Tôi hiện đang có dự án MonoTouch có sử dụng một sự kết hợp của một Storyboard và một số xib-less (ViewControllers mà không có một xib tương ứng hoặc tham chiếu trong Storyboard) điều khiển (ví dụ. MonoTouch .Dialog).MonoTouch Storyboard với với bộ điều khiển xem xib-less

Tất cả mọi thứ hoạt động tốt gọi ra khỏi ViewControllers Storyboard để những xib-ít. Vấn đề tôi có là khi tôi cần gọi từ một ViewController xib-less trở lại vào Storyboard ViewController.

Ví dụ dòng chảy:

  • Storyboard
    • TabViewController
      • FirstViewController DialogViewController (không phải trong Storyboard/xib-less)
        • AnotherViewController

Vấn đề là khi tải ví dụ khác.

var avc = new AnotherViewController(); 
avc.Person = person 
_dvc.ActivateController(avc); 

Tôi đã phải tạo một hàm tạo trống trên AnotherViewController để làm điều này có thể. Quan điểm này sau đó tải, nhưng chỉ là một UIViewController rỗng (không phải là một trong Storyboard của tôi). Tôi không thể thiết lập một Segue giữa MT.Dialog với AnotherViewController trong Interface Builder vì DialogViewController được tạo lập trình.

Cách giải quyết khác là quên OneViewController trong bảng phân cảnh hoàn toàn và chỉ tạo chương trình đó một cách lập trình - nhưng thật đáng tiếc là tôi không thể kết hợp/trộn khung nhìn Storyboard với các chế độ có lập trình.

Bất cứ lời khuyên (hoặc MonoTouch C# trích dẫn) sẽ được nhiều đánh giá cao!

+0

Không chắc tôi đã hiểu chính xác: bạn muốn bật 'AnotherViewController' - được thiết kế với IB trong bảng phân cảnh của bạn - từ trình điều khiển chế độ xem được thiết kế theo chương trình, phải không? – psycho

Trả lời

0

Bạn có thể tạo một bộ điều khiển từ Storyboard, chỉ cần thêm identifier với nó (trong Storyboard) và sau đó làm:

YourController *c = 
[storyboard instantiateViewControllerWithIdentifier:@"YourIdentifier"]; 

đừng quên để khởi tạo các bản sao trong viewDidLoad, vì initWithNibName sẽ không bao giờ gọi

Các vấn đề liên quan