我有一个带有窗口控制器的故事板。该窗口控制器有一个NSToolbar,带有2个NSToolbarItems,view1和view2。这是WindowController的代码:
import Cocoa
class MainWindow: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
}
@IBOutlet var toolbar: NSToolbar!
@IBAction func view1(sender: AnyObject) {
ViewController().changeView("View1")
}
@IBAction func view2(sender: AnyObject) {
ViewController().changeView("View2")
}
}
我还有一个在启动时加载的视图控制器(ViewController)。这是代码用于另外两个视图控制器(View1)和(View2)
的地方import Cocoa
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override var representedObject: AnyObject? {
didSet {
}
}
func changeView (kString:NSString) {
let kView1:NSViewController = NSStoryboard(name: "Main", bundle: nil)?.instantiateControllerWithIdentifier("View1") as NSViewController
let kView2:NSViewController = NSStoryboard(name: "Main", bundle: nil)?.instantiateControllerWithIdentifier("View2") as NSViewController
var currentViewController = kView1
switch kString {
case "View1":
currentViewController = kView1
case "View2":
currentViewController = kView2
default:
currentViewController = kView1
}
self.view.addSubview (currentViewController.view)
}
}
这是我的故事板布局:(似乎我无法发布图片,我的声誉很低)我希望你能理解
[MainWindow] - > [SplitViewController] - > [SideBar(尚未使用)]
---------------------------------------------> [视图控制器]
故事板中有两个独立的视图控制器,没有任何连接。 View1和View2
View1和View2分别具有故事板ID的View1和View2。
运行应用程序并单击工具栏上的其中一个视图按钮时,我在控制台中收到错误消息:
2015-03-19 10:35:31.448 ToolbarTest [16032:2922107] - [NSNib initWithNibNamed:bundle:]无法在bundle(null)中加载nibName:ToolbarTest.ViewController。
我做错了什么?