2013-06-04 34 views
0

下面是我的代码:如何将具有特定ID的故事板加载到UIViewController?

UIViewController *viewController = [UIViewController new]; 
if (indexPath.section == 0){ 
     UIViewController *controller; 
     switch (indexPath.row) { 
      case 0: 
       controller = [[self storyboard] instantiateViewControllerWithIdentifier:@"ProfileSettings"]; 
       [[viewController view] setBackgroundColor:[UIColor greenColor]]; 

所有我要的是“负荷”控制器到的viewController,但我不知道这是否是可能的..可以任你解释我做错了什么?

回答

0

我不知道为什么你需要先创建一个新的视图控制器,然后实例化另一个视图控制器,并将其放置在您最初创建的视图控制器中。

这将是更好的做这样的事情:

id viewController; 
if (indexPath.section == 0) { 
    switch (indexPath.row) { 
     case 0: 
      viewController = [[self storyboard] instantiateViewControllerWithIdentifer:@"ProfileSettings"]; 
    // etc etc 

// Display view controller as required 

...但是,如果你实际上要做的是把你的故事板实例化视图控制器内的另一个视图控制器的然后你必须使用视图控制器遏制,这是从iOS 5开始提供的。视图控制器遏制工程是这样的:

[vc addChildViewController:instantiatedController]; 
[vc.view addSubview:instantiatedController.view]; 

但我不确定是否真的需要这样做。从您发布的代码看起来像没有真正需要使用遏制。

相关问题