gpt4 book ai didi

swift - NSPageController 错误转换

转载 作者:行者123 更新时间:2023-11-28 10:52:13 25 4
gpt4 key购买 nike

我的页面 Controller 转换有问题,看起来像这样

bad transition

这是我的页面 Controller 的代码

class PageController: NSPageController, NSPageControllerDelegate {

override func viewDidLoad() {
super.viewDidLoad()

delegate = self
arrangedObjects = ["FirstViewController", "SecondViewController"]
}

func pageController(_ pageController: NSPageController, identifierFor object: Any) -> String {
return object as! String
}

@IBAction func forward(_ sender: Any) {
self.navigateForward(self)
}

@IBAction func back(_ sender: Any) {
navigateBack(self)
}

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

func pageControllerDidEndLiveTransition(_ pageController: NSPageController) {
pageController.completeTransition()
}
}

为什么会这样,我该怎么做才能正常过渡?

最佳答案

当你推送一个新页面时,原始页面仍然在 View 层次结构中,因为它必须在新页面以动画方式进入 View 时显示。一旦新 View 完全覆盖了原始 View ,它就会被删除。因为第二个 View 的背景是透明的,所以您仍然可以看到下面的按钮。

当您将新页面推离屏幕时,下面的 View 将添加到层次结构中,因此您可以在顶部 View 动画消失时看到它。因为顶 View 是透明的,所以按钮会在 View 动画之前出现。

如果您将 View 设置为不透明而不是透明,则无法通过透明背景看到下方的 View ,因此它会如您所愿地工作。

关于swift - NSPageController 错误转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45634172/

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