gpt4 book ai didi

ios - Swift:自定义 ViewController 初始化器

转载 作者:IT老高 更新时间:2023-10-28 11:23:58 24 4
gpt4 key购买 nike

如何在 Swift 中为 UIViewController 子类添加自定义初始化器?

我创建了一个 UIViewController 的子类,看起来像这样:

class MyViewController : UIViewController
{
init(leftVC:UIViewController, rightVC:UIViewController, gap:Int)
{
self.leftVC = leftVC;
self.rightVC = rightVC;
self.gap = gap;

super.init();

setupScrollView();
setupViewControllers();
}
}

当我运行它时,我得到一个 fatal error :

fatal error: use of unimplemented initializer 'init(nibName:bundle:)' for class 'MyApp.MyViewController'

我在其他地方读到过,在添加自定义初始化程序时,还必须覆盖 init(coder aDecoder:NSCoder) 所以让我们覆盖 init 并看看会发生什么:

override init(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder);
}

如果我添加这个,Xcode 会提示 self.leftVC 在 super.init 调用时没有初始化。所以我想这也不是解决方案。所以我想知道如何将自定义初始化程序正确添加到 Swift 中的 ViewController 子类(因为在 Objective-C 中这似乎不是问题)?

最佳答案

解决了!必须调用指定的初始化程序,在这种情况下是带有 nibName 的初始化程序,显然 ...

init(leftVC:UIViewController, rightVC:UIViewController, gap:Int)
{
self.leftVC = leftVC
self.rightVC = rightVC
self.gap = gap

super.init(nibName: nil, bundle: nil)

setupScrollView()
setupViewControllers()
}

关于ios - Swift:自定义 ViewController 初始化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25527311/

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