Основная проблема под рукой состоит в том, что контроллер представления входа в систему полностью не знает, когда представление регистрации отклоняется, и мы можем справиться с этим с делегированием.
Сначала объявите протокол и свойство делегата в контроллере представления регистрации.
@protocol CreateAccountDelegate;
@interface CreateAccount : UIViewController
@property (nonatomic, assign) id <CreateAccountDelegate> delegate;
@end
@protocol CreateAccountDelegate <NSObject>
- (void)createAccountViewControllerDidFinish:(CreateAccount *)controller;
@end
Затем сделайте контроллер представления входа в систему делегатом контроллера регистрации.
createAccount = [[CreateAccount alloc] initWithNibName:@"CreateAccount" bundle:nil];
createAccount.delegate = self;
И внедрите -createAccountViewControllerDidFinish:
- (void)createAccountViewControllerDidFinish:(CreateAccount *)controller
{
[self dismissModalViewControllerAnimated:YES];
}
Наконец, когда вы увольняетесь из контроллера регистрации, отправьте сообщение делегату, чтобы сообщить об этом в случае вашего скорого увольнения.
[self.delegate createAccountViewControllerDidFinish:self];
[self dismissModalViewControllerAnimated:YES];
Теперь , сказав все это.Могу ли я предложить изменение вашего дизайна?Я бы представил контроллер вида входа в систему как часть контроллера навигации с самого начала.Затем, если пользователь решит зарегистрироваться, просто передайте представление регистрации на контроллер.Таким образом, независимо от того, откуда вы отказываетесь, вам нужно будет только отклонить основной навигационный контроллер.