【问题标题】:Programmatically copy array to new view in Storyboard以编程方式将数组复制到情节提要中的新视图
【发布时间】:2011-12-30 14:26:57
【问题描述】:

我目前正在尝试将我必须的数组复制到我正在以编程方式创建的新视图中。我实际上已经找到了如何使用正常的导航控制器语法来做到这一点。我的问题是我正在使用新的故事板,但我不知道做同样事情的语法。这是我的代码..

CustomerListViewController *second = [[CustomerListViewController alloc] initWithNibName:@"CustomerListViewController" bundle: nil];
[second setValue:customerList.list];
// [self.navigationController pushViewController:second animated:YES];
[self performSegueWithIdentifier:@"LoginSegue" sender:self];

如您所见,我正在以编程方式创建第二个视图控制器并将本地数组 customerList.List 存储到创建的视图控制器的数组变量中。下一步是打开新创建的视图。注释掉的行是在导航控制器下打开视图的语法。下面的行是故事板的方式,但减去指定我创建的视图。我需要知道情节提要的语法才能与导航控制器执行相同的操作。

【问题讨论】:

    标签: iphone objective-c ios xcode


    【解决方案1】:

    如果您使用 segue,则在此处创建自己的 CustomerListViewController 实例是没有意义的。 segue 本身将从情节提要中创建视图控制器,而您在此处创建的实例将什么也不做。

    相反,只需在此处致电performSegueWithIdentifier:sender:。然后像这样实现prepareForSegue:sender: 方法:

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        if ([segue.identifier isEqualToString:@"LoginSegue"]) {
            CustomerListViewController *destinationController = (CustomerListViewController *)segue.destinationViewController;
            [destinationController setValue:customerList.list];
        }
    }
    

    【讨论】:

    • 对不起,我应该提到.. 我需要在特定时间以编程方式调用 segue,因为新视图是在按下按钮时调用的,但我必须打开一个连接,并进行一些处理和计算。如果我不以编程方式调用它,则视图会在任何计算完成之前打开,并且在创建视图时我的数组为空。 edit 没关系,我明白你在说什么。我会试试这个。
    • 没问题。正如我所说,当您需要启动 segue 时,只需致电 performSegueWithIdentifier:sender:
    • 好吧,我试过了,首先,您发布的代码在 customerList.list 上导致错误,说 customerList 未定义(它位于第二个视图控制器中)。我将其更改为仅列出(第二个视图控制器中的数组名称),但它为空并且没有传递任何内容。使用这种风格,我想我看不到第一个视图控制器中的数组到底在哪里传递给第二个......
    • prepareForSegue:sender: 必须是原始视图控制器中的方法(与您调用 performSegue... 的位置相同)。如果 customerList.list 在该方法中不可用,您应该在视图控制器中将其设为 ivar/property,或者通过 sender 参数将值从一种方法共享给另一种方法。
    • 哦,我的错,我把它放在第二个视图控制器中。似乎工作!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多