iOS 5 拆分视图模式视图控制器弹出窗口:可能还是没有骰子?

Posted

技术标签:

【中文标题】iOS 5 拆分视图模式视图控制器弹出窗口:可能还是没有骰子?【英文标题】:iOS 5 split view modal view controller popup: possible or no dice? 【发布时间】:2012-01-03 04:36:54 【问题描述】:

我基本上有一个 splitview 控制器,我想立即显示一个弹出模式视图控制器。

我已将带有模态 segue 的 UISplitView 类连接到我的另一个视图控制器(LoginView,只是一个直接的 UIViewController 子类)我基本上只是想在加载时显示它,我很确定我应该不要在应用程序委托中执行此操作(但我可能是错的)

我想用一个

[something performSegueWithIdentifier:@"login" sender:something];

我应该把它放在哪里以及我应该将 segue 连接到什么(我发誓我已经尝试了各种不同的组合哈哈!)

(我正在使用从 Xcode 4.2 开始的通用主从视图开始项目)

【问题讨论】:

【参考方案1】:

我会从您的初始详细视图控制器(拆分视图的右窗格)中显示此内容,因为无论启动方向如何,它都会始终发送-viewDidAppear: 消息。

在您的-viewDidAppear: 方法中,让拆分视图控制器呈现模态控制器。拆分视图控制器中的每个视图控制器都已经设置了其splitViewController 属性。确保您的 segue 从拆分视图控制器(不是其子视图控制器之一)连接到登录视图控制器。

- (void)viewDidAppear:(BOOL)animated

    [super viewDidAppear:animated];
    [self.splitViewController performSegueWithIdentifier:@"login" sender:self.splitViewController];

【讨论】:

你真是太棒了——为什么会这样(viewDidLoad和viewDidAppear有什么区别?) 这是有效的,因为-viewDidAppear: 消息会在视图出现在屏幕上时自动发送到您的视图控制器。 -viewDidLoad: 在视图控制器的视图已加载并已连接其所有出口后发送。 还有一点 - 我把它放在 viewDidLoad 中,并且在显示模态视图控制器之前,我缓解了下面的视图闪烁一秒钟的问题。仍然;非常感谢! 我通常喜欢在-viewDidAppear: 中进行模态转换,以便用户可以在屏幕上看到动画效果。它可以帮助他们了解这是必须在应用程序继续操作之前完成的任务。苹果在任何地方都使用这种技术。尝试在没有任何对话的情况下启动Messages.app,您将在新消息模式出现之前看到一个空白表格视图。 啊,是的,我明白了——我看到的所有其他动画都出现了,正是出于这个原因——我只需要在视图中加载这个动画,这样应用程序看起来就被“锁定”了(即,在您登录之前,您无法“进入”应用程序的主要部分)但是是的,我的主要问题是我试图从主视图而不是细节显示模式(可能在拆分视图之前)加载完成了吗?)

以上是关于iOS 5 拆分视图模式视图控制器弹出窗口:可能还是没有骰子?的主要内容,如果未能解决你的问题,请参考以下文章

在弹出窗口中显示 UISplitViewController

将视图控制器显示为弹出窗口-iOS8

在拆分视图中,当应用程序以横向模式启动时如何将视图调整到屏幕

iPad 纵向模式下的拆分视图 - 弹出按钮标题

iOS 在弹出窗口中显示视图控制器

如何在 ios 的 swreveal 视图控制器中推送弹出窗口?