gpt4 book ai didi

swift - NSPageController 快速示例

转载 作者:行者123 更新时间:2023-11-28 16:02:28 28 4
gpt4 key购买 nike

我尝试使用 NSPageController 创建向导。但我不明白我需要在委托(delegate)方法中返回什么。我将 navigateForward 附加到我的按钮,当我点击它时,我得到:

[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]

class BoardAligmentPageController: NSPageController, NSPageControllerDelegate {

var orderedViewControllers: [NSViewController] = {
return [NSStoryboard(name: "Main", bundle:nil).instantiateController(withIdentifier: "BoardAligmentStep1ViewController") as! NSViewController,
NSStoryboard(name: "Main", bundle:nil).instantiateController(withIdentifier: "BoardAligmentStep2ViewController") as! NSViewController,
NSStoryboard(name: "Main", bundle:nil).instantiateController(withIdentifier: "BoardAligmentStep2ViewController") as! NSViewController,
]
}()


override func viewDidLoad() {
super.viewDidLoad()

delegate = self

self.arrangedObjects = orderedViewControllers
}


func pageController(_ pageController: NSPageController, identifierFor object: Any) -> String {

return "\(self.selectedIndex)"
}

func pageController(_ pageController: NSPageController, viewControllerForIdentifier identifier: String) -> NSViewController {
return orderedViewControllers[Int(identifier)!]
}
}

最佳答案

看起来您的 orderedViewControllers 属性实际上并未设置(因为您遇到了“越界”错误)。

不要做那个属性,试着按需做:

func pageController(_ pageController: NSPageController, identifierFor object: Any) -> String {

print("\(self.selectedIndex)")

switch(self.selectedIndex)
{
case 0 :
return "BoardAligmentStep1ViewController"
case 1 :
return "BoardAligmentStep2ViewController"
case 2 :
return "BoardAligmentStep3ViewController"
default :
return "SomeDefaultViewController"
}
}

func pageController(_ pageController: NSPageController, viewControllerForIdentifier identifier: String) -> NSViewController {
return self.storyboard?.instantiateController(withIdentifier: identifier) as! NSViewController
}

关于swift - NSPageController 快速示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40802652/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com