2015-11-20 63 views
2

我設置了我的第一個項目斯威夫特型「類」輸入值。目前,我得到這個錯誤:無法分配「[類別]」

Cannot assign value of type 'UIViewController' to type '[UIViewController]' 

我已暗自懷疑這個有關這一切?!業務...

我以爲我有?小號想通了足夠的! s的工作理解上手,但是當我開始尋找到應用程序委託的初始化我弄糊塗了順便說一句,他們正在使用! s。這是我在我的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的實例混淆了我爲好,說實話......我們使用?的原因是因爲我們希望變量能夠包含零,和在創建對象之前不必定義它,對嗎?那麼爲什麼()在最後?但我離題了。

'UIViewController''[UIViewController]'有什麼區別,我能做些什麼來使這個錯誤消失?

回答

0

嘗試

self.navCtrlr!.viewControllers = [self.rootVC! as UIViewController]; 

[UIViewController]是迅速

陣再說,我覺得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();