UITableview在弹出视图控制器后丢失了引用

时间:2017-02-23 08:49:22

标签: ios swift uitableview swift2

例如,我有ViewController1 UITableview个对象和数据。然后我将推送到ViewController1ViewController2的另一个控制器。

我的问题是当我尝试从ViewController2弹出到ViewController1然后UITableview对象返回nil并且我的应用程序崩溃了。这个问题经常发生。

我使用故事板分配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! 致命错误:在解包可选值时意外发现nil

刷新控制只不过是“UIRefreshControl()对象”,它不是nil。

1 个答案:

答案 0 :(得分:0)

在弹出第二个控制器后检查表视图的数据是否仍然存在,可能是它没有获取其数据源。保持对包含tableview数据的Array的强引用