为啥模态演示表单未按预期显示?

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 代码移动到你的detailViewControllerviewDidAppear:

【讨论】:

welp,我将模态内容移至 detail:viewDidLoad 并得到相同的结果。 我没说viewDidLoad吧?在viewDidLoad 还是没有接口!请尝试我实际上所说的尝试。 确实,你知道什么。可能有助于阅读我的书中关于视图控制器的章节:它清楚地解释了事件的含义(以及其他一些东西):apeth.com/iOSBook/ch19.html 太棒了,当然。非常感谢。 UIView 对象可以不存在于界面中而存在。它们只是对象,但界面是应用程序窗口的实际子视图。如果 UIView 的 window 不是应用程序的窗口,它实际上不在界面中。

以上是关于为啥模态演示表单未按预期显示?的主要内容,如果未能解决你的问题,请参考以下文章

带有导航器的颤振模态底部工作表未按预期弹出

使用 jQuery 将值发布到 api 未按预期工作

数据视图行过滤器未按预期工作

Rx.combineLatest2 未按预期工作

为啥我的模态呈现(表单)navController 的 rootViewController 在模态呈现时不知道它的尺寸较小?

React-Stripe-Elements 元素未按预期呈现样式