Если вы не используете UINavigationController
Вы можете поместить что-то вроде этого в контроллер представления, который вызывает модальное представление:
-(void)dismissModalViewControllerAnimated:(BOOL)animated{
if (_someFlagForBeingProperlyLoggedIn) [super dismissModalViewControllerAnimated:animated];
}
Когда вы нажимаете на страницу, сверните контроллер представления / родительского представленияотправлено dismissModalViewControllerAnimated:
.
Поскольку вы используете контроллер навигации, ваши возможности ограничены.Это связано с тем, что UINavigationController
является подклассом UIViewController
, и при этом является эгоцентричным.Когда вы щелкаете по странице, она вызывается dismissModalViewControllerAnimated:Иметь UIAlertView «прямой возврат» к модальному представлению входа в систему очень легко.Пусть этот главный вид соответствует протоколу UIAlertViewDelegate
.Когда вы отображаете оповещение, установите этот экземпляр в качестве делегата и в этом классе реализует метод:
-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
// Enclose in if (buttonIndex == #) for selective calling
UINavigationController* nav = (UINavigationController*)[[UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil] instantiateViewControllerWithIdentifier:@"Preferences"];
[nav setModalTransitionStyle:UIModalTransitionStylePartialCurl];
[self.navigationController presentModalViewController:nav animated:YES];
}
Затем, когда представление оповещения будет отклонено, будет отображено представление «логин».