0

下面是我的代码:

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 中,但我不确定这是否可能......你们中的任何人都可以解释我做错了什么吗?

4

1 回答 1

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];

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

于 2013-06-04T12:08:02.820 回答