2015-03-02 5 views
0

Я хочу использовать «AHTabBarController» в быстром проекте.AHTabBarController несовместим с Swift

Я не знаю, почему этот код не работает:

 var tabBarController = self.window?.rootViewController as AHTabBarController 

     var tab1 = AHTabView() 
     tab1.image = UIImage(named: "") 
     tab1.title = "Tab 1" 

     var tab1_subItem = AHSubitemView(frame: UIScreen.mainScreen().bounds) 
     tab1_subItem.image = UIImage(named: "") 
     tab1_subItem.title = "Tab 1 Title" 
     tab1_subItem.viewControllerIdentifier = "channelsListSB" 

     tab1.addSubitem(tab1_subItem) 


     tabBarController.tabs.addObjectsFromArray([tab1]) 

     self.window?.rootViewController = tabBarController 

Код Objective-C является:

AHTabBarController *tabBarController = (AHTabBarController*)self.window.rootViewController; 

/******* PURUS *******/ 
AHTabView *purus = [AHTabView new]; 
[purus setImage:[UIImage imageNamed:@"persondot"]]; 
[purus setTitle:@"Purus"]; 

AHSubitemView *pFirst = [AHSubitemView new]; 
[pFirst setImage:[UIImage imageNamed:@"persondot"]]; 
[pFirst setTitle:@"First"]; 
[pFirst setViewControllerIdentifier:@"PurusFirst"]; 
[purus addSubitem:pFirst]; 

// … 

AHSubitemView *fFirst = [AHSubitemView new]; 
[fFirst setImage:[UIImage imageNamed:@"photos"]]; 
[fFirst setTitle:@"First"]; 
[fFirst setViewControllerIdentifier:@"FringillaFirst"]; 
[fringilla addSubitem:fFirst]; 
//Don't forget to add your AHTabView instances to the AHTabBarController! 
[tabBarController.tabs addObjectsFromArray:@[purus, fringilla, ipsum]]; 

Ошибка:

fatal error: unexpectedly found nil while unwrapping an Optional value

+1

* Я не знаю, почему этот код не работает * - это абсолютно бесполезное описание. Что не работает, как исключено? Что вы ожидаете? – idmean

+0

Неустранимая ошибка: неожиданно найден nil при развертывании Необязательное значение – Ahmad

+0

Знаете ли вы, что значит разворачивать необязательное значение? Какая строка вызывает эту проблему? –

ответ

1

Вы не указывайте строку, поэтому я просто догадываюсь, что проблема здесь:

tab1.image = UIImage(named: "") 

Это возвращает nil, но вы назначаете его image, который неявно разворачивается дополнительно. Вам нужно указать фактическое имя изображения, которое гарантированно вернет изображение. В качестве альтернативы вы можете сделать это условно:

if let image = UIImage(named: "") { 
    tab1.image = image 
} else { 
    // handle failure 
} 
+0

2015-03-02 22: 22: 58.491 altelfaz [25005: 2046895] CUICatalog: Недействительное имя актива: [25005: 2046895] *** Завершение приложения из-за неперехваченного исключения «Invalid ViewController!», Причина: «ViewController инстанцированная форма раскадровки может быть не нулевой. Проверьте, действительно ли идентификатор " – Ahmad

Смежные вопросы