为啥模态演示表单未按预期显示?
Posted
技术标签:
【中文标题】为啥模态演示表单未按预期显示?【英文标题】:Why is modal presentation form sheet not being displayed as expected?为什么模态演示表单未按预期显示? 【发布时间】:2013-04-08 15:36:03 【问题描述】:我只是在这里尝试一个非常简单的示例,因为我开始深入研究 ipad 的 ios 开发。
我正在创建一个拆分视图并立即尝试呈现一个模式表单。 应该是非常基本的。
通过我的尝试,我得到了类似于页面表的行为。 在横向中,我可以看到下面的拆分视图,但我看不到模态视图的顶部(工具栏是隐藏的,但在纵向视图中)。
我希望将 540x620 模态对话框下方的拆分视图显示为灰色。我应该在纵向和横向模式下看到拆分视图,例如 Cheddar 应用程序中所有漂亮的表单对话框。
我一定是做错了什么,但我在 Cheddar 应用程序中阅读过的所有示例都与我在下面概述的差不多。
在应用委托中:
MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil];
UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
masterViewController.detailViewController = detailViewController;
self.splitViewController = [[UISplitViewController alloc] init];
self.splitViewController.delegate = detailViewController;
self.splitViewController.viewControllers = @[masterNavigationController, detailNavigationController];
self.window.rootViewController = self.splitViewController;
[self.window addSubview:self.splitViewController.view];
ModalViewController *modalView = [[ModalViewController alloc] initWithNibName:@"ModalViewController" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:modalView];
navController.modalPresentationStyle = UIModalPresentationFormSheet;
[self.splitViewController presentViewController:navController animated:NO completion:nil];
【问题讨论】:
我在这里发布了一个类似问题的答案:***.com/questions/10104706/… 我在这里发布了一个类似问题的答案:***.com/questions/10104706/… 我回答了一个类似的问题 [这里][1] [1]:***.com/questions/10104706/… 【参考方案1】:应用委托太快了。您还没有界面,因此您无法连贯地展示任何视图控制器。
所以,首先,将你所有的modalView
代码移动到你的detailViewController
的viewDidAppear:
。
【讨论】:
welp,我将模态内容移至 detail:viewDidLoad 并得到相同的结果。 我没说viewDidLoad
吧?在viewDidLoad
还是没有接口!请尝试我实际上所说的尝试。
确实,你知道什么。可能有助于阅读我的书中关于视图控制器的章节:它清楚地解释了事件的含义(以及其他一些东西):apeth.com/iOSBook/ch19.html
太棒了,当然。非常感谢。
UIView 对象可以不存在于界面中而存在。它们只是对象,但界面是应用程序窗口的实际子视图。如果 UIView 的 window
不是应用程序的窗口,它实际上不在界面中。以上是关于为啥模态演示表单未按预期显示?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的模态呈现(表单)navController 的 rootViewController 在模态呈现时不知道它的尺寸较小?