我的初始视图控制器中有两个segues。 push segue连接到单元格,模态连接到+ UIBarButtonItem。
当这是我的prepareForSegue代码的样子时,一切都很好,filePath通过push segue发送,但filePath不会通过模态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都在Attributes中设置了正确的标识符。但是,我不确定Xcode是否真的意识到设置了正确的标识符,因为当我更改segue类型时,这些更改不会在下次运行应用程序时反映出来。
我不知道该做什么。我对Objective-C比较陌生。
答案 0 :(得分:4)
addEvent
segue指向导航控制器,而不是您的视图控制器。相反,获取视图控制器并在其上设置文件路径:
[[[segue destinationViewController] topViewController] setFilePath:filePath];