我的主视图控制器位于导航控制器中,它符合EditViewControllerDelegate
协议。这是我需要以模态方式呈现的两个视图控制器的代表。
@interface EditViewController : UIViewController
@property (nonatomic) id <EditViewControllerDelegate> delegate;
@end
@interface EditSomethingViewController : EditViewController
@end
@interface EditSomethingElseViewController : EditViewController
@end
在一种 editViewController:(EditViewController *)evc didFinishEditing:(Something *) something
方法中,我首先获取所需的数据,然后关闭evc
并调用
[self performSegueWithIdentifier:@"My Segue" sender:self];
“我的 Segue”是在 Xcode 中定义的,并且标识符在代码和 Xcode 中都是相同的(我试图更改它只是为了查看它是否被调用并引发异常)
当我将“My Seque”的类型更改为 push 时,它起作用了。但是在我回到主视图控制器后,它不会做任何事情
我错过了什么?
编辑:
我不小心在我的故事板中发现了一个警告!(这很奇怪,因为它不是“从任何地方都可见”的项目中的警告)在“引用故事板 Segues”下的连接检查器中,我的模态 segue 有一个警告。它说 :
(null) is not a valid containment controller key path
我检查了其他模态序列并且有相同的警告,但我不需要通过代码触发它们,所以之前没有问题。
编辑2:
-(void)editViewController:(EditViewController *) evc
didFinishEditing:(Something *) something
{
self.something = something;
[self dismissModalViewControllerAnimated:YES];
For ( OtherThing * otherThing in self.something.otherthingsArray)
{
NSLog(@"%@", otherThing);
}
[self performSegueWithIdentifier:@"My Segue" sender:self];
}