例如,我有 ViewController1
和 UITableview
对象和数据。然后我将推送到另一个 Controller ,从 ViewController1
到 ViewController2
.
我的问题是,当我尝试从 ViewController2
弹出到 ViewController1
时,UITableview
对象返回 nil
并且我的应用程序崩溃了。这个问题经常发生。
我正在使用 Storyboard来分配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! fatal error :在解包可选值时意外发现 nil
刷新控件只不过是“UIRefreshControl()对象”,它不为零。
最佳答案
检查弹出第二个 Controller 后 TableView 的数据是否仍然存在,可能是它没有获取其数据源。对包含 tableview 数据的数组保留强引用
关于ios - UITableview 在弹出 View Controller 后丢失了引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42410895/