Я думаю, что к тому времени, когда вы закроете первый контроллер вида, [self.navigation presentmodal ..] не сможет самостоятельно открывать новый контроллер.
Вы могли бы сделать это:
используйте логическую переменную, чтобы указать, будет ли в следующий раз отображаться этот контроллер (когда вы закрываете тот, который вы пытаетесь открыть), он должен закрыться и реализует эту функцию в методе viewDidApper: вот так:
@interface FirstViewController : UIViewController
{
//...
BOOL close;
}
и в файле .m
-(void)viewDidAppear:(BOOL)animated{
if(close)
[self dismissModalViewControllerAnimated:NO];
else
[super viewDidAppear:animated];
}
Теперь, чтобы открыть свой новый контроллер, сделайте это:
-(IBAction)openSecondController:(id)sender{
//..
SecondViewController* controller = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
close = YES;
[self presentModalViewController:controller animated:NO];
}
Теперь, когда вы закроете второй, закроется и первый. не имеет видимых побочных эффектов в моих приложениях ..
не самый чистый путь, но я не нашел лучшего.
веселит