在我的OS X应用程序中,我有2个视图:一个用于登录,另一个用于显示文件的内容。我为登录表单创建了一个.xib文件,另一个创建了一个表视图。该应用程序的逻辑运行良好,但我通过演示视图控制器有问题。 当用户单击登录按钮时,应取消具有登录表单的视图控制器,并显示具有表视图的视图控制器。 当用户单击注销按钮时,应取消具有表视图的视图控制器,并显示具有登录表单的视图控制器。 现在,使用以下代码在I' m之间切换:
HistoryViewController *historyViewController = [[HistoryViewController alloc]init];
[self presentViewControllerAsModalWindow:historyViewController];
但如果用户点击退出按钮,它会向我显示登录视图控制器,如果用户按下关闭按钮(左上角的红色按钮),它会再次向我显示没有用户的视图控制器已登录。所以用户按下注销按钮后如何关闭表视图控制器?有隐藏/关闭视图控制器的方法吗? 我希望你能帮助我解决这个问题。谢谢
答案 0 :(得分:1)
在我阅读您的问题时,我假设您将登录屏幕显示为应用程序中的单独面板。几乎没有信息可以继续,但我会看到yopur应用程序的三个选项。
将登录屏幕显示为主窗口中的视图。登录成功后,您将主窗口中的视图从登录屏幕交换到表格视图。在本网站上的另一个问题中显示了进出窗口的视图。 Xcode single window, display custom view from xib file
现在,就像您现在一样,在主窗口顶部的面板中显示登录屏幕。我假设您跟踪登录是否成功。在决定关闭面板时使用此状态。当有人通过按下关闭按钮(左上角的红色按钮)关闭面板时,窗口将向其文件所有者(通常是视图控制器)发送“windowWillClose”通知。实现此方法禁止窗口在登录失败时关闭。这样,用户只能选择成功登录或取消登录(您必须实现方法和按钮)。关闭窗口是不可能的。无法用红色关闭按钮关闭面板。
清空表视图的数据源,使其显示空表。使用在表视图顶部运行的登录屏幕启动应用程序。只有当用户成功登录时,才会填充数据源并调用“reloadData”来显示表视图的内容。如果登录失败或用户关闭了面板,他将无法操作表格视图。
我会在一个窗口(选项1)或空表视图(选项3)中查找两个视图。选项3将是我的首选方案。我希望这会有所帮助。