我在UINavigationController中有UITableViewController,我想在popover视图中显示并填充viewController中的字段。
故事板看起来像是下面的照片。左VC在按下导航按钮时调用editIdeaSeque。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"editIdeaSegue"]) {
UINavigationController *nvc = segue.destinationViewController;
if (!isIpad) {
EditIdeaTVC* edi = (EditIdeaTVC*)[nvc.viewControllers objectAtIndex:0];
if (edi != nil)
edi.editIdea = sender;
}
else {
UINavigationController* nc = (UINavigationController*)[[segue.destinationViewController popoverPresentationController] presentedViewController];
EditIdeaTVC* edi = (EditIdeaTVC*)[nc.viewControllers objectAtIndex:0];
if (edi != nil)
edi.editIdea = sender;
}
}
}
我为segue做准备适用于类似故事板布局的iphone。 Ipad部分崩溃导致edi是一些垃圾指针。
-[EditIssueTVC setEditIdea:]: unrecognized selector sent to instance 0x157d6c7a0
我原以为presentViewController将是UINavigationController ......
答案 0 :(得分:0)
UINavigationController* nc = (UINavigationController*)[[segue.destinationViewController popoverPresentationController] presentedViewController];
你过度思考这个问题。导航控制器是目标视图控制器。这种情况与您之前的代码相同:
UINavigationController *nvc = segue.destinationViewController;
没有任何关于弹出窗口情况会改变目标箭头远端的视图控制器。