【发布时间】:2017-02-23 08:49:21
【问题描述】:
例如,我有 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)
}
App 在“packingItemsTableView.addSubview(refreshControl)”这一行崩溃了。
它在日志中返回 (lldb) po self.packingItemsTableView! 致命错误:在展开可选值时意外发现 nil
刷新控件不过是“UIRefreshControl() 对象”,它不为零。
【问题讨论】:
-
在应用崩溃的地方添加你的代码工作。
-
分享崩溃日志或您的来源。在视图生命周期事件期间是否以编程方式删除了任何视图?
-
在
viewDidAppear中声明并初始化您的refreshControl对象并尝试再次运行代码或将所有viewDidAppear代码移动到viewDidLoad
标签: ios swift uitableview swift2