【发布时间】:2014-02-26 05:30:05
【问题描述】:
我的初始视图控制器有两个转场。 push segue 连接到 cell,modal 连接到 + UIBarButtonItem。
当这是我的 prepareForSegue 代码的样子时,一切正常,filePath 通过 push segue 发送,但 filePath 没有通过 modal segue。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showTimes"]) {
[[segue destinationViewController] setFilePath:filePath];
}
// if ([[segue identifier] isEqualToString:@"addEvent"]) {
// [[segue destinationViewController] setFilePath:filePath];
// }
}
如果我取消注释第二个 if 语句和 segue 标识符,应用程序将崩溃。 filePath 无处发送。我尝试将 [[segue destinationViewController] setFilePath:filePath]; 从两个 if 语句中移出,以确保执行该行,但这也会使我的应用程序崩溃。
两个 segue 都在属性中设置了正确的标识符。但是,我不确定 Xcode 是否真的意识到设置了正确的标识符,因为当我更改 segue 类型时,这些更改不会在我下次运行应用程序时反映出来。
我不知道该怎么做。我对 Objective-C 比较陌生。
【问题讨论】:
-
将第二个 if 替换为 else if
-
我也试过
else if,但它给出的结果与注释掉时的结果相同。我尝试将其更改为else,但这似乎也不起作用。 -
查看下面Jason Coco的回答,如果不行,请分享日志中显示的崩溃原因。
标签: ios iphone objective-c xcode uistoryboardsegue