2017-02-23 45 views
0

例如我有ViewController1UITableview對象和數據。然後我將推到另一個控制器從ViewController1ViewController2UITableview在彈出視圖控制器後丟失了參考文件

我的問題是,當我試圖從流行到ViewController2然後ViewController1對象UITableview回報nil和我的應用程序是crashed.This問題經常發生。

我正在使用故事板來指定UITableview。我使用swift 2.0作爲編程語言。

下面是我的應用程序崩潰的源代碼。

override func viewDidAppear(animated: Bool) 
{ 
    super.viewDidAppear(true) 
    btnRightBarBtnItem.image = UIImage(named : "Home") 
    btnRightBarBtnItem.target = self 
    btnRightBarBtnItem.action = #selector(self.btnHomeAction) 

    refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh") 
    refreshControl.addTarget(self, action: #selector(SelectPackingItemsViewController.refresh(_:)), forControlEvents: UIControlEvents.ValueChanged) 
    packingItemsTableView.addSubview(refreshControl) 
} 

應用程序崩潰在「packingItemsTableView.addSubview(refreshControl)」這一行。

它返回日誌 (lldb)po self.packingItemsTableView! 致命錯誤:意外地發現零,而解包一個可選值

刷新控制不過是「UIRefreshControl()對象」,它不是零。

+3

將您的代碼工作添加到應用程序崩潰的位置。 –

+3

分享崩潰日誌或您的來源。在視圖生命週期事件期間是否以編程方式刪除了任何視圖? – Krunal

+0

在'viewDidAppear'中聲明並初始化'refreshControl'對象,然後再次運行代碼或將所有'viewDidAppear'代碼移動到'viewDidLoad' –

回答

0

在彈出第二個控制器後,檢查表視圖的數據是否仍然存在,可能是它沒有獲取其數據源。保持包含桌面視圖數據的陣列的強大參考