Мой основной контроллер представления находится в навигационном контроллере и соответствует протоколу 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];
«Мой переход», определенный в Xcode, и идентификатор одинаков как в коде, так и в Xcode (Я пытался изменить его, просто чтобы посмотреть, вызывается ли он и выдает ли он исключение.)
Когда я меняю тип "My Seque" на push, это сработало. Но с модальным ничего не происходит после того, как я вернусь к главному контроллеру представления
Что мне не хватает?
EDITED:
Я случайно обнаружил предупреждение в своей раскадровке! (это странно, потому что это не предупреждение в проекте "видно отовсюду" )В инспекторе соединений в разделе «Ссылка на этапы раскадровки» есть предупреждение о моем модальном переходе. он говорит:
(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];
}