Presentation选项(在Attribute Inspector中)究竟在StoryBoard for Cocoa中做了什么。
它提供了两个选项供
选择P.S当用Google搜索标题时,结果与powerpoint演示相关
答案 0 :(得分:14)
演示风格影响"显示"塞格斯。可能它也影响其他segue,但我只测试了一个Show segue。我使用Xcode 7.1.1在OS X 10.10.5(Yosemite)上进行了测试。
如果窗口控制器的演示风格是"多个" (默认值),然后显示到窗口控制器的segue总是从故事板中加载窗口控制器的新实例。这意味着您可以同时使用窗口控制器的多个实例,每个实例在屏幕上都有自己的窗口。默认情况下,这些窗口会堆叠在一起,因此在移动或关闭之前,它不会显而易见。
如果窗口控制器的演示样式是" Single",并且已经从故事板加载了窗口控制器的实例,并且该窗口控制器仍然存在(可能是因为它的窗口是仍然在屏幕上),然后显示到该视图控制器的segue将不创建一个新实例。相反,Show segue会将现有的窗口控制器窗口置于最前面。
如果你想要Xcode的设备窗口之类的行为,这种行为很有用,那里只能有一个这样的窗口。你创建了一个"设备"故事板中“窗口”菜单中的菜单项,并使用“显示segue”将其连接到故事板中的“设备”窗口控制器。将“设备”窗口控制器的演示样式设置为“单个”。现在,菜单项永远不会创建第二个“设备”窗口控制器(如果已存在)。
您可能希望以某种方式将窗口的excludedFromWindowsMenu
属性设置为true,因此它在窗口菜单中不会出现两次(因为默认情况下它会附加到菜单)。例如,您可以使用NSWindowController
的子类来设置它:
class DevicesWindowController: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
window?.excludedFromWindowsMenu = true
}
}
视图控制器也具有演示样式,因为您还可以将Show segues连接到视图控制器。连接到视图控制器的Show segue会自动创建一个窗口控制器,以在运行时包含视图控制器。窗口控制器的演示样式有效地设置为视图控制器,因此如果将视图控制器的演示设置为Single,则会获得相同的单例行为。
据我所知,故事板设置没有相应的公共属性或方法,您可以在代码中使用。
如果将Show segue连接到故事板引用(Xcode 7中的新增内容),则segue会忽略目标窗口控制器的呈现样式,并且就像它是" Multiple"一样。即使目标实际上与引用位于同一个故事板中,也会发生这种情况。