2010-04-07 99 views
11

我有兩個NIB的如何在另一個NIB的視圖中加載NIB?

ParentViewController.xib 
ChildViewController.xib 

ParentViewController.xib包含一個UIView和一個UIViewController。 ChildViewController.xib包含一個UIButton

我想

我做了以下ChildViewController.xib在ParentViewController.xib的UIView的加載:在ParentViewController

  1. 創建@property爲的UIView
  2. 在ParentViewController中連接文件的所有者到UIView
  3. 在ParentViewController的NIB中設置UIViewController在ParentViewController

我希望這會ChildViewController加載到我在ParentViewController但沒有運氣UIView的name屬性ChildViewController在Interface Builder

  • 集ChildViewController視圖屬性的UIView。

    我沒有得到以下警告,這可能是罪魁禍首:

    'View Controller (Child View)' has both its 'NIB Name' property set and its 'view' outlet connected. This configuration is not supported. 
    

    我還添加了額外的代碼在ParentViewController的viewDidLoad():

    - (void)viewDidLoad { 
        [super viewDidLoad]; 
        ChildViewController *childViewController = [[ChildViewController alloc]initWithNibName:@"ChildViewController" bundle:nil]; 
        childViewController.view = self.myView; 
    } 
    

    爲什麼ChildViewController沒有任何想法加載在ParentViewController的UIView?

  • 回答

    6

    試試這個

    [self.myview addSubview: childViewController.view]; 
    

    代替

    childViewController.view = self.myView; 
    
    +4

    是可能使用界面做Builder? – wezzy 2011-03-02 18:22:02

    5

    另一種方法是建立在筆尖的 「嵌入式」 視圖(!),說ChildView.xib,然後初始化它在ParentViewController.xib(變化身份檢查器中的類)。不需要在父視圖控制器的-viewDidLoad方法中以編程方式[self.view addSubview:embeddedView]

    我在一篇長篇博文中寫了我們如何embed custom-view Nibs inside other Nibs。關鍵是在ChildView類中重寫-awakeAfterUsingCoder:,將從「父」Nib加載的對象替換爲從「子」Nib加載的對象。

    請注意,我們的自定義控件繼承UIView,不UIViewController(見Apple's docs on Custom view controllers:「你不應該使用多個自定義視圖控制器來管理同一視圖層次結構的不同部分」)

    +0

    您是否從您提供的鏈接中檢查了「容器視圖控制器排列其他視圖控制器的內容」部分...從iOS5起,您可以選擇UIViewController遏制。 – tapmonkey 2012-12-06 09:14:02

    +2

    鏈接到您的博文是死的順便說一句。 – expert 2013-08-30 01:18:47

    +1

    @ruslan:適用於我......無論如何,這裏是一個更新:http://blog.yangmeyer。de/blog/2012/07/09/an-update-on-nested-nib-loading – 2013-08-30 09:35:48

    相關問題