例如,我有ViewController1
UITableview
个对象和数据。然后我将推送到ViewController1
到ViewController2
的另一个控制器。
我的问题是当我尝试从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。
答案 0 :(得分:0)
在弹出第二个控制器后检查表视图的数据是否仍然存在,可能是它没有获取其数据源。保持对包含tableview数据的Array的强引用