关闭视图控制器
Posted
技术标签:
【中文标题】关闭视图控制器【英文标题】:Close view controller 【发布时间】:2015-01-26 17:05:36 【问题描述】:在我的 OS X 应用程序中,我有 2 个视图:一个用于登录,一个仅显示文件的内容。我创建了 2 个 .xib 文件,一个用于登录表单,一个用于表格视图。该应用程序的逻辑运行良好,但我在演示视图控制器时遇到了问题。 当用户单击登录按钮时,应关闭带有登录表单的视图控制器,并应显示带有表格视图的视图控制器。 当用户单击注销按钮时,应关闭带有表格视图的视图控制器,并应显示带有登录表单的视图控制器。 现在要在 2 个视图控制器之间切换,我使用以下代码:
HistoryViewController *historyViewController = [[HistoryViewController alloc]init];
[self presentViewControllerAsModalWindow:historyViewController];
但是如果用户点击注销按钮,它会显示登录视图控制器,如果用户按下关闭按钮(左上角的红色按钮),它会再次显示没有用户登录的视图控制器。所以用户按下注销按钮后如何关闭表格视图控制器?有办法隐藏/吗? 我希望你能帮助我解决这个问题。谢谢
【问题讨论】:
- dismissViewControllerAnimated:completion:
?
我找不到这个方法...
dismissViewControllerAnimated:completion:
【参考方案1】:
当我阅读您的问题时,我假设您在应用程序中将您的登录屏幕显示为一个单独的面板。信息很少,但我会看到 yopur 应用程序的三个选项。
在主窗口中将登录屏幕显示为视图。当登录成功时,您将主窗口中的视图从登录屏幕切换到您的表格视图。在本网站的另一个问题中介绍了在窗口内外交换视图。 Xcode single window, display custom view from xib file
像现在一样在主窗口顶部的面板中显示登录屏幕。我假设您跟踪登录是否成功。在决定关闭面板时使用此状态。当有人通过按下关闭按钮(左上角的红色按钮)关闭面板时,窗口将向其文件所有者(通常是视图控制器)发送“windowWillClose”通知。实现此方法可在登录失败时禁止关闭窗口。这样,用户只能选择成功登录或取消登录(您必须实现方法和按钮)。关闭窗口将是不可能的。使用红色关闭按钮不小心关闭面板是不可能的。
清空表视图的数据源,使其显示一个空表。使用在表格视图顶部运行的登录屏幕启动您的应用程序。只有当用户成功登录时,您才填写数据源并调用“reloadData”来显示表格视图的内容。如果登录失败或用户关闭面板,他将无法操作表格视图。
我会在一个窗口中选择两个视图(选项 1)或空表视图(选项 3)。选项 3 将是我的首选。我希望这会有所帮助。
【讨论】:
以上是关于关闭视图控制器的主要内容,如果未能解决你的问题,请参考以下文章