2015-03-02 81 views
0

我想在swift项目中使用“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 2015-03-02 16:37:13

+0

致命错误:在解包可选值时意外发现为零 – Ahmad 2015-03-02 18:23:53

+0

您是否知道打开可选值的含义?哪一行导致此问题? – 2015-03-02 18:29:11

回答

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] ***终止应用程序由于未捕获的异常'无效的ViewController!',原因:'ViewController实例化的故事板可能不是零。请检查标识符是否有效' – Ahmad 2015-03-02 21:23:24