我正在设置我的第一个Swift项目,我目前收到此错误:
Cannot assign value of type 'UIViewController' to type '[UIViewController]'
我怀疑这与所有?
!
业务有关......
我以为我已经找到了?
,并且对!
s的了解已经足够了,但当我开始研究app委托初始化时,我对他们的方式感到困惑'使用!
。这是我在didFinishLaunchingWithOptions
方法中到目前为止所做的:
self.window = UIWindow(frame: UIScreen.mainScreen().bounds);
self.navCtrlr = UINavigationController();
self.rootVC = RootViewController(nibName: nil, bundle: nil);
self.navCtrlr!.viewControllers = self.rootVC! as UIViewController; ****
self.window!.rootViewController = self.rootVC;
self.window?.makeKeyAndVisible();
第4行(带****)是有问题的。最初我使用的self.rootVC as UIViewController
没有!
,但是我收到一条错误,要求我添加!
,所以我做了。现在我得到了我现在的错误。这就是我的类属性:
var window: UIWindow?;
var navCtrlr = UINavigationController?();
var rootVC: RootViewController?;
UINavigationController实例化也让我感到困惑,说实话......我们使用?
的原因是因为我们希望变量能够包含nil,并且在创建之前不必定义它对象吧?那么为什么最后()
呢?但我离题了。
'UIViewController'
和'[UIViewController]'
之间有什么区别,我该怎么办才能让这个错误消失?
答案 0 :(得分:0)
尝试
self.navCtrlr!.viewControllers = [self.rootVC! as UIViewController];
[UIViewController]
是swift中的数组
此外,我认为rootViewController
是navigationController,所以
self.window = UIWindow(frame: UIScreen.mainScreen().bounds);
self.rootVC = RootViewController(nibName: "youNibName", bundle: nil);
self.navCtrlr = UINavigationController(rootViewController: self.rootVC!);
self.window!.rootViewController = self.navCtrlr;
self.window?.makeKeyAndVisible();