2015-05-11 40 views
0

我寫了一些代碼,它在模擬器中正常工作,但它在Device中不起作用。我已經將4個視圖控制器分配給了tabbar,下面是HomeScreen的代碼,它被分配爲tabbar中的第一個視圖控制器。它在viewdidload()的第一行崩潰。當分配一個可選值時發生「意外發現零」,同時將視圖控制器分配給TabBar

當我從viewdidload()中刪除所有東西時,它就起作用了。

class HomeScreen: UIViewController { 
    var tableView: UITableView! 
    @IBOutlet weak var imgLine:UIImageView! 
    @IBOutlet weak var btnActiveDeals:UIButton! 
    @IBOutlet weak var btnActiveClaims:UIButton! 
    @IBOutlet weak var btnNearByDeals:UIButton! 
    @IBOutlet weak var horizontalSpaceConstraint:NSLayoutConstraint! 
    @IBOutlet weak var tblMain:UITableView! 

    var mydeals : MyDealsViewController! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     btnActiveDeals.titleLabel?.adjustsFontSizeToFitWidth = true 
     btnActiveDeals.titleLabel?.minimumScaleFactor = 0.5 
     btnActiveDeals.autoresizesSubviews = true 

     btnActiveClaims.titleLabel?.adjustsFontSizeToFitWidth = true 
     btnActiveClaims.titleLabel?.minimumScaleFactor = 0.5 
     btnActiveClaims.autoresizesSubviews = true 

     btnNearByDeals.titleLabel?.adjustsFontSizeToFitWidth = true 
     btnNearByDeals.titleLabel?.minimumScaleFactor = 0.5 
     btnNearByDeals.autoresizesSubviews = true 

     tblMain.backgroundView = nil 
     tblMain.backgroundColor = UIColor.clearColor() 

    } 

請在下面的代碼中找到將主屏幕分配給tabbar的代碼。

let centerViewController1 = HomeScreen(nibName: "HomeScreen", bundle: nil) 
let centerViewController2 = HomeScreen(nibName: "HomeScreen", bundle: nil) 
let centerViewController3 = HomeScreen(nibName: "HomeScreen", bundle: nil) 
let centerViewController4 = HomeScreen(nibName: "HomeScreen", bundle: nil) 

tabBarController = UITabBarController() 
var controllers = [centerViewController1,centerViewController2,centerViewController3,centerViewController4] 
tabBarController.viewControllers = controllers 
tabBarController.tabBar.tintColor = UIColor.whiteColor() 

請指導我。提前致謝。

+0

使用斷點並查看哪一行返回該錯誤。 – Cesare

+0

如果您正在使用故事板,爲什麼要創建tabBarController = UITabBarController()? – Amit89

+0

@CeceXX錯誤是在viewdidload的第一行.. btnActiveDeals.titleLabel?.adjustsFontSizeToFitWidth = true 這在模擬器中正常工作,一旦我評論整個viewdidload,然後它進一步。是否有任何按鈕和tableview的分配問題? –

回答

0

它是失敗的,因爲在viewDidLoad,btnActiveDeals尚未啓動。

原因:您初始化您的視圖控制器的方式。

解決方案:

1 - 如果你在故事板創建您的視圖控制器,請初始化它像下面

if let vc = storyboard?.instantiateViewController(withIdentifier: "IdentifierDefinedInStoryboard") as? VC { 
     self.navigationController?.pushViewController(vc, animated: true) 
    } 

2 - 如果你已經創建了廈門國際銀行在您的視圖控制器,請實例像下面

let centerViewController1 = CenterViewController() 

請告訴我,如果有幫助!

相關問題