2013-04-15 59 views
2

我試圖在WWDC 2012「在應用中使用故事板」視頻中解釋的容器視圖中使用IB/storyboard(不知道他們如何稱呼它)。一切正常,除了我想改變一點流量。我想通過一個事件來執行嵌入事件。沒有任何代碼行可能嗎?關於事件的顯示容器視圖

它看起來很基本,(觸摸一個按鈕,使得出現一個子視圖控制器不是一個棘手的情況),所以我認爲可能有辦法,但我找不到它。

+0

嵌入segue會立即發生。爲什麼不直接隱藏視圖直到觸摸按鈕? –

+0

如果我必須這樣做,我更願意在按下按鈕時通過代碼添加子視圖控制器。 – LiohAu

回答

3

嵌入式控制器將同時作爲主控制器被實例化,但您可以隱藏在IB嵌入式控制器的視圖,然後顯示在你的按鈕的操作方法:

-(IBAction)makeVisible:(id)sender { 

    [self.childViewControllers[0] view].hidden = NO; 
} 

相反,如果,你想添加子視圖控制器來響應事件,你可以在代碼中添加如下代碼:

UIViewController *child = [self.storyboard instantiateViewControllerWithIdentifier:@"Child"]; 
    [self addChildViewController:child]; 
    [child didMoveToParentViewController:self]; 
    child.view.frame = CGRectMake(50, 50, 150, 150); 
    [self.view addSubview:child.view]; 
+0

有沒有別的辦法?這一個看起來有點醜陋,而且需要代碼,所以當我通過代碼觸摸按鈕時,通過添加子視圖控制器,我可以做些更漂亮的事情,這樣我就不會玩隱藏的屬性。嵌入segue不能是一個自定義的繼續,我可以在觸摸上執行,並可以用於使可見的孩子VC? – LiohAu

+0

@LiohAu,當然,你可以通過代碼添加子視圖控制器,但是從你的問題來看,你似乎想避免代碼,並且這種方式使用最少量的代碼。我已經更新了我的答案,以顯示如何在代碼中執行此操作。 – rdelmar