我有一个带有窗口控制器的故事板。该窗口控制器有一个带有 2 个 NSToolbarItems、view1 和 view2 的 NSToolbar。这是 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 (尚未使用)]
---------------------------------------------> [视图控制器]
然后故事板中有两个独立的视图控制器,没有连接到任何东西。视图 1 和视图 2
View1 和 View2 都分别具有情节提要 ID 的 View1 和 View2。
运行应用程序并单击工具栏上的视图按钮之一时,我在控制台中收到一条错误消息:
2015-03-19 10:35:31.448 ToolbarTest[16032:2922107] -[NSNib initWithNibNamed:bundle:] 无法加载 nibName:捆绑包中的 ToolbarTest.ViewController(空)。
我究竟做错了什么?