2017-02-23 42 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

在弹出第二个控制器后,检查表视图的数据是否仍然存在,可能是它没有获取其数据源。保持包含桌面视图数据的阵列的强大参考