技术:7.0的XCode,斯威夫特2在不同的控制器中访问函数并初始化我的masterViewController?
在我的detailViewController
文件,我有(其中包括):
var masterViewController: MasterViewController? = nil
@IBAction func saveItem(sender: anyObject) {
if let newItem = something,
let tagItem = newItem
self.masterViewController!.model.saveQuery(newItem, forTag: tagItem, syncToCloud: true)
let indexPath =
NSIndexPath(forRow: 0, inSection: 0)
self.masterViewController!.tableView.insertRowsAtIndexPaths([indexPath],
withRowAnimation: .Automatic)
self.masterViewController?.forceSearch(indexPath)
self.masterViewController?.tableView.reloadData()
}
}
所以,我就self.masterViewController...saveQuery
线得到一个错误的执行错误,我认为这与我的MasterViewController
设置为nil
这一事实有关。但是,我不知道应该如何启动我的MasterViewController
变量,或者我应该如何设置它(如果这是有道理的话)。
我该如何正确启动它?
这给了我一个错误“'MasterViewController'在detailController.masterViewController = self行上没有成员'masterViewController'”。此外,这应该放在我的detailViewController中;我如何将它集成到我的代码上面?再次感谢。 –
对不起,剧组显然应该是'DetailViewController'。修正了这个例子。这个方法应该被添加到MasterViewController中,并且会在segue显示你的'DetailViewController'之前被调用。 –
@John Kluivers现在我从更新后的代码中得到这个错误“无法将类型'DetailViewController'的值赋值为类型'MasterViewController?'的值'”嗯... –