你好,我在向NSSplitViewController发送数据时遇到了问题。它似乎不像IOS开发中那样工作。
firstController:
class LoginController: NSViewController {
//.....
@IBAction func Login(_ sender: Any) {
//....
let story = NSStoryboard(name: NSStoryboard.Name(rawValue: "Main"),
bundle: nil).instantiateController(withIdentifier:
NSStoryboard.SceneIdentifier(rawValue: "SPLIT")) as!
NSSplitViewController
let vc : ContainerController = ContainerController();
vc.passedData = "karosas";
self.view.window?.contentViewController = story;
//....
}
//.....
}第二个NSSplitViewController:
import Cocoa
class ContainerController: NSSplitViewController {
var passedData = "";
override func viewDidLoad() {
super.viewDidLoad()
print(passedData);
print("nzn");
}
}现在,我正在尝试将数据发送到NSViewSplitController。我需要将数据传递给NSSplitViewController格式的NSViewController。我确实尝试了很多不同的方法,但都失败了。所以我想我需要先把数据传递给SplitController,然后再传递给ViewController。但我甚至不能向NSSplitViewController发送任何数据。有人能帮我吗?
发布于 2018-07-17 10:37:31
如果LoginController和MenuController都在ContainerController中,则可以执行以下操作:
LoginController
import Cocoa
class LoginController: NSViewController {
//.....
@IBAction func Login(_ sender: Any) {
//....
self.userName = value["name"] as! String
let MenuVC = parent?.childViewControllers[1] as! MenuController // 0 or 1 depending on order in SplitView
MenuVC.passedData = self.username
self.view.window?.contentViewController = parent as! ContainerController
//....
}
//.....
}MenuController
import Cocoa
class MenuController: NSViewController {
var passedData = ""
override func viewDidLoad() {
super.viewDidLoad()
print(passedData)
print("nzn")
}
}发布于 2018-07-04 00:48:02
我已经设法用下面的代码做到了这一点。
self.userName = value["name"] as! String;
let story = NSStoryboard(name: NSStoryboard.Name(rawValue: "Main"), bundle: nil)
.instantiateController(withIdentifier: NSStoryboard.SceneIdentifier(rawValue: "SPLIT"))
as! ContainerController
let dest = story.childViewControllers[0] as! MenuController;
dest.passData = self.userName;
self.view.window?.contentViewController = story;我不知道这是不是一个好的方法,但它是有效的。
https://stackoverflow.com/questions/51157630
复制相似问题