我已经重复搜索相关答案,但没有找到(或可能,不明白)任何相关的内容。一些事实:didSelectRowAtIndexPath + performSegueWithIdentifier + modal segue =不能将自己添加为子视图
1)我在这方面非常非常新。
2)我正在使用Xcode 5 &针对iOS 7 iPad
3)我试图添加一个功能(是,死吻)到一个大的,现有的应用程序,由我无法写的人联系
该应用程序有一个分离视图控制器,链接到一个导航控制器,链接到一个表视图(&与原始分割视图相关的一大堆其他视图)。 如果用户选择的表项具有特定的值,我想打开一个新的视图(否则让现有的逻辑处理它)。
我创建了一个新的视图控制器与模式segue从表视图。我添加了一个测试到didSelectRowAtIndexPath方法方法:
if([[object name] isEqualToString:@"SpecialCase"]) {
[self performSegueWithIdentifier:@"ScSegue" sender:nil];
}
这个工作至少一次,直到我开始尝试将信息传递给新的视图。我已经添加:
if ([[segue identifier] isEqualToString:@"ScSegue"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
CBPeripheral *object = _objects[indexPath.row];
[[segue destinationViewController] setDetailItem:object];
}
我已经添加了必要的def/decl setDetailItem()到我的新视图控制器。我不知道当我这样做的时候是否破坏了某些东西,但即使我把所有这些都归还了,当我第一次添加segue时,我仍然会得到“不能将自己添加为子视图”。是的,我完成了之间的清洁。
我意识到我可能太不知道要尝试这样做,但这是我的工作。我大部分时间都在寻找线索而没有取得成功,所以我在snarkfest之前对自己谦卑。任何援助将不胜感激。
Hello @GerryO,在你的代码上放置断点并逐步调试,然后告诉我哪一行出现异常。 –
你好,谢谢!我应该包括这一点。执行此行时发生错误:[self performSegueWithIdentifier:@“ScSegue”sender:nil]; – GerryO