Представление ModalViewController внутри ModalViewController
У меня есть представление, которое представлено как модальный контроллер представления, который принимает имя пользователя и пароль. Я хочу, чтобы это представление проверяло делегата, и если пользователь ранее не установил пин-код разблокировки для приложения, чтобы затем отобразить представление сменного контакта в качестве модального контроллера представления. Это мой код...
+(void)presentCredentialsViewController:(UIViewController *)vc{
CredentialsViewController *cvc = [[CredentialsViewController alloc] init];
[vc presentModalViewController:cvc animated:FALSE];
}
а затем в CredentialsViewController
-(void)viewDidLoad{
[super viewDidLoad];
if([appDelegate.pin isEqualToString: @""]){
UserPrefsViewController *upvc = [[UserPrefsViewController alloc] init];
upvc.cancelButton.hidden = true;
[self presentModalViewController:upvc animated:FALSE];
}
}
Но по какой-то причине это не работает. Отладчик просматривает код без ошибок, тем не менее, второй контроллер модального представления не отображается.
2 ответа
First, I would suggest checking that your appDelegate.pin
пусто и не ноль. Если это ноль, оператор if не будет удовлетворен, и ваш второй ModalView не будет представлен.
Вы также можете попробовать предыдущее предложение, позвонив presentModalViewController
от viewDidAppear
или установить задержку, если оставить ее в viewDidLoad
, Возможно, что CredentialsViewController
пытается представить второй взгляд, когда он еще не представил себя.
Утверждается оператор if, и второй PresentModalViewController выполняется без ошибок, но он просто не отображается. Я попытался поместить код в ViewDidAppear, а также загрузить другие места, такие как applicationWillBecomeActive и т. Д. Несмотря на то, что на самом деле код не разбился, все же ни один из этих подходов не показал бы контроллер представления. В конце концов я выбрал это:
start with pin of @""
on applicationDidEnterBackground check if pin has been set
if yes
PresentModalViewController: PinViewController
if no
do nothing
Немного взломать, но это будет делать пока. Я полагаю, что я должен поместить какое-то уведомление где-нибудь, предупреждающее, что пин не был установлен. Предположение о задержке может сработать, я полагаю. Я мог бы попробовать в будущем. Спасибо, ребята.... указывает вверх!