关闭视图控制器

Close view controller

在我的 OS X 应用程序中,我有 2 个视图:一个用于登录,一个仅显示文件的内容。我创建了 2 个 .xib 文件,一个用于登录表单,另一个带有 table 视图。该应用程序的逻辑运行良好,但我在展示视图控制器时遇到了问题。 当用户单击登录按钮时,应关闭带有登录表单的视图控制器,并应显示带有 table 视图的视图控制器。 当用户单击注销按钮时,应关闭带有 table 视图的视图控制器,并应显示带有登录表单的视图控制器。 现在要在我使用以下代码的 2 个视图控制器之间切换:

HistoryViewController *historyViewController = [[HistoryViewController alloc]init];
[self presentViewControllerAsModalWindow:historyViewController];

但是如果用户点击注销按钮,它会显示登录视图控制器,如果用户按下关闭按钮(左上角的红色按钮),它会再次显示没有用户登录的视图控制器. 那么我如何在用户按下注销按钮后关闭 table 视图控制器?有办法 hide/close 视图控制器吗? 我希望你能帮我解决这个问题。谢谢

在阅读您的问题时,我假设您在应用程序中将登录屏幕显示为单独的面板。可以继续的信息很少,但我会看到 yopur 应用程序的三个选项。

  1. 将登录屏幕显示为主要 window 中的视图。登录成功后,您将主 window 中的视图从登录屏幕切换到您的 table 视图。在本网站的另一个问题中介绍了 window 中的视图交换。

  2. 像现在一样,在主 window 顶部的面板中显示登录屏幕。我假设您跟踪登录是否成功。在决定关闭面板时使用此状态。当有人按下关闭按钮(左上角的红色按钮)关闭面板时,window 将向其文件所有者(通常是视图控制器)发送 "windowWillClose" 通知。实施此方法并禁止 window 在登录不成功时关闭。这样,用户只能选择成功登录或取消登录(您必须实现一个方法和按钮)。关闭 window 是不可能的。不小心用红色关闭按钮关闭面板是不可能的。

  3. 清空 table 视图的数据源,以便显示一个空的 table。使用 table 视图顶部的登录屏幕 运行 启动您的应用程序。只有当用户成功登录时,您才填充数据源并调用 "reloadData" 以显示 table 视图的内容。如果登录不成功或用户关闭面板,他将无法操作 table 视图。

我要么选择单个 window 中的两个视图(选项 1),要么选择空的 table 视图(选项 3)。选项 3 将是我的首选。希望对您有所帮助。