在我的视图控制器代码中,我如何区分:
在这两种情况下,和
都是
YES
,所以不是很有帮助。
使事情复杂化的是,我的父视图控制器有时是模态的,要检查的视图控制器被推送到模态的视图控制器上。
我的问题是,我将
HtmlViewController
嵌入到UINavigationController
中,然后显示该控制器。这就是为什么我自己的尝试和下面的好答案都不起作用。
HtmlViewController* termsViewController = [[HtmlViewController alloc] initWithDictionary:dictionary];
UINavigationController* modalViewController;
modalViewController = [[UINavigationController alloc] initWithRootViewController:termsViewController];
modalViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:modalViewController
animated:YES
completion:nil];
我想我最好告诉我的视图控制器什么时候是模态,而不是试图确定。
您忽略了一个方法:正在呈现
。
isBeingPresented
在显示视图控制器时为true,在按下视图控制器时为false。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if ([self isBeingPresented]) {
// being presented
} else if ([self isMovingToParentViewController]) {
// being pushed
} else {
// simply showing again because another VC was dismissed
}
}
迅速:
添加一个标志以测试它是否是类类型的模态:
// MARK: - UIViewController implementation
extension UIViewController {
var isModal: Bool {
let presentingIsModal = presentingViewController != nil
let presentingIsNavigation = navigationController?.presentingViewController?.presentedViewController == navigationController
let presentingIsTabBar = tabBarController?.presentingViewController is UITabBarController
return presentingIsModal || presentingIsNavigation || presentingIsTabBar
}
}
拿一粒盐,没有测试。
- (BOOL)isModal {
if([self presentingViewController])
return YES;
if([[[self navigationController] presentingViewController] presentedViewController] == [self navigationController])
return YES;
if([[[self tabBarController] presentingViewController] isKindOfClass:[UITabBarController class]])
return YES;
return NO;
}
问题内容: 在我的视图控制器代码中,我该如何区分: 模态呈现 推入导航堆栈 这两个和是在这两种情况下,所以都不是很有益的。 使事情变得复杂的是,我的父视图控制器有时是模态的,将要检查的视图控制器推到该模态上。 事实证明,我的问题是,我嵌入我的,然后呈现。这就是为什么我自己的尝试和下面的好答案无法正常工作的原因。 我想我最好告诉我的视图控制器何时是模态的,而不是试图确定。 问题答案: 拿一粒盐,没有
问题内容: 题 如何仅使用按钮的touch up内部事件从一个视图控制器导航到另一个视图控制器? 更多信息 我在一个示例项目中尝试执行的步骤是: 创建示例单视图应用程序。 为用户界面(ViewController2)添加一个新文件->具有XIB的Objective-C类。 在ViewController.xib中添加一个按钮,并控制单击ViewController.h的按钮以创建内部补全事件。 转
我有一个小型iPhone应用程序,它使用导航控制器显示3个视图(此处为全屏): 首先,它显示社交网络列表(Facebook、Google等): 然后它会显示一个OAuth对话框,要求提供凭据: 以及(之后,在相同的UIWebView中)权限: 最后,它显示带有用户详细信息的最后一个视图控制器(在真正的应用程序中,这将是菜单,可以在其中开始多人游戏): 这一切都很好,但我有一个问题,当用户想要返回并
问题内容: 我正在使用此应用程序,我需要所有视图控制器,但一个需要纵向显示。我特别需要一个单一的视图控制器,使其能够旋转至手机所处的方向。 为此,我以模态形式呈现(未嵌入NavigationController中) 所以(例如)我的结构是这样的: 窗口-肖像 根视图控制器(UINavigationController-肖像) 家庭视图控制器(UIViewController-肖像) 详细信息视图控
我有一个
我需要一些关于react原生应用程序的社区建议。我是一个全新的人,不理解其中的一些基本区别。 关于反应本地文档创建StackNavigator的示例建议如下:从“反应导航堆栈”导入{createStackNav导航仪}; 我发现很多人使用下面的样式导入{堆栈导航器,Tab导航器}从“反应导航”; 为什么人们使用以上两种不同的风格?哪一个更合适,为什么? react-navigation-stack