使根视图控制器在mac OSX swift中消失

时间:2015-03-11 11:36:02

标签: macos swift

我正试图从一个控制器移动到另一个控制器,但我希望根视图控制器在打开另一个视图时消失。我只看到弹出窗口,模型和工作表,但根视图控制器仍然在后台可见。例如在登录页面中,当我点击注册时,会出现注册页面,登录页面会消失,反之亦然。有没有办法在OSX中执行此操作?

3 个答案:

答案 0 :(得分:1)

在stackoverflow中,通常的做法是显示您已经尝试过的代码,我建议您阅读:How to ask a good question

关于你的问题:

您需要从超级视图中删除要隐藏的视图。

view.removeFromSuperview()

" view"是您想要隐藏的视图。 您可以将此视图传递给要隐藏视图的函数,也可以将其保存在变量中。

如果你正在使用子视图,我假设这是因为我知道新的视图控制器会覆盖旧视图。

答案 1 :(得分:0)

在OSX中,当您参考" View Controllers"它们属于响应者链,即像Window Controllers一样。

所以基本上有几种方法可以从一个视图控制器(一个窗口?)转换到另一个视图控制器:

1)从一个" View Controller"对于另一个"窗口"中的另一个,您需要依赖:

  1. 自定义NSWindowController,它允许NSViewController(及其NSView)切换。 - 强烈不推荐。
  2. 自定义NSViewController,用于处理其子NSViewControllers的自定义转换。即手动实例化每个子ViewController,并从" main"过渡到另一个子ViewController。视图控制器(这是您正在查看的主要控件0 /。 2 a)如果你想在NSTabViewController(它确实处理简单的过渡)中使用构建的东西,但是也不推荐用于此用途。 3)唯一的选项,绝对不推荐使用单独的视图控制器)并在它们之间使用segue。这可以创建多个窗口..取决于"演示选项"你选择。

    • 重要的是要注意......点击你的任何一个窗口,查看等等......控制器..你会看到一个"演示文稿"您可以在"单身"之间切换的选项和"多个"。

      • Single :一旦您实例化任何窗口/视图控制器(或响应者链中的任何内容),它仍然是实例化的,并且不会多次出现多个实例
      • 多个:您有一个窗口或视图(或其他任何东西),需要多次出现,依赖于每个实例的独立而不是一次即(只有一个偏好窗口)...等......

答案 2 :(得分:0)

解决问题的一种方法是以编程方式移动到新屏幕,如下所示:

将一些Storyboard ID提供给第二个viewController,例如secondView

将注册按钮的操作链接到第一个ViewController,然后在操作方法中添加以下代码:

let secondView = self.storyboard!.instantiateControllerWithIdentifier("secondView") as? SignUpViewController

self.view.window?.contentViewController = secondView;