2014-05-25 76 views
1

我正在使用容器視圖構建應用程序。 我一直在瀏覽互聯網,找到如何正確使用它的例子,但不幸的是,我發現了很少的例子,迄今爲止,他們都沒有像我打算那樣使用故事板。 這裏是我的故事板的圖片: (FirstWinViewController.m)使用容器視圖與故事板和導航

#import "FirstWinViewController.h" 
#import "ContainerClassViewController.h" 

@interface FirstWinViewController() 

@end 

@implementation FirstWinViewController 

- (IBAction)clickOne:(id)sender { 

    ContainerClassViewController *viewContained = [[self.childViewControllers[0] viewControllers] objectAtIndex:0]; 

    [viewContained gotoSegue:1]; 

} 
- (IBAction)clickTwo:(id)sender { 

    ContainerClassViewController *viewContained = [[self.childViewControllers[0] viewControllers] objectAtIndex:0]; 

    [viewContained gotoSegue:2]; 

} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

(ContainerClassViewController.m)

#import "ContainerClassViewController.h" 

@interface ContainerClassViewController() 

@end 

@implementation ContainerClassViewController 

-(void)gotoSegue:(int)umOuDois { 

    switch (umOuDois) { 
     case 1: 

      [self.navigationController popToRootViewControllerAnimated:NO]; 

      [self performSegueWithIdentifier:@"seguePush1" sender:nil]; 
      break; 

     case 2: 

      [self.navigationController popToRootViewControllerAnimated:NO]; 

      [self performSegueWithIdentifier:@"seguePush2" sender:nil]; 
      break; 

     default: 
      break; 
    } 

} 

據工作: app scheme

我寫的代碼是這樣的正是我想要的方式。 我的問題是:

。根據蘋果的規定是否正確?

。此方法是否使用更多內存,留下垃圾或使用比通過代碼創建Container視圖並使用AppDelegate來管理它們的示例更多的資源?

在此先感謝。

+0

它**完全在這裏非常詳細的解釋** ... http://stackoverflow.com/a/23403979/294884向下滾動到部分「標識符...」。這很簡單。 – Fattie

回答

2

我很困惑你的問題和@ JoeBlow的答案。

容器視圖爲你開始iOS 6的魔術。你將容器視圖拖到你的表單上,然後控制 - 從容器視圖拖動到另一個VC。 IB提供爲您創建嵌入式Segue。您給它一個標識符,然後ebed segue將導致子視圖控制器在加載父視圖控制器時作爲子項加載並安裝。

父母的prepareForSegue方法在孩子被加載的時候觸發,並且讓你有機會保存一個指向孩子的指針,安裝父代作爲孩子的代理,或者任何你需要做的其他設置。

我在github上有一個示例項目,演示瞭如何使用2個容器視圖,每個視圖嵌入表視圖控制器。表格視圖控制器及其父母使用我定義的簡單協議來回傳遞。

您可以在此鏈接查看項目:https://github.com/DuncanMC/test

+0

Duncan C,謝謝你的回答。我在容器視圖中獲取指向視圖控制器的指針的方法確實奏效,但您指出的segue方式也起作用,似乎是一種更好的做法。 – user1141890

+0

魔法?它很容易在代碼中實現,這可能會在框中顯示出來。 –

+0

@Pétur好吧,魔法是多餘的。爲了手動完成這些操作並使所有內容正常工作,您必須執行相當多的內務操作。 –

相關問題