ios - UITableview 在弹出 View Controller 后丢失了引用

标签 ios swift uitableview swift2

例如,我有 ViewController1UITableview 对象和数据。然后我将推送到另一个 Controller ,从 ViewController1ViewController2 .

我的问题是,当我尝试从 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/

相关文章:

javascript - 在不禁用用户选择的情况下禁用 UIWebview 上的缩放/镜头

ios - Xcode - 自定义 TableViewCell 显示错误数据

ios - 我知道如何仅在顶部禁用 uitableview 的弹跳 - 但我如何才能仅在底部执行此操作?

ios - 如何在 Swift 中使用 UIWebView 管理 cookie

ios - 如何将 Xib 作为标记而不是谷歌地图标记图标放置在谷歌地图上

ios - 根据设备的大小更改 UIImageViews 的位置

swift - 你能严格泛型类型或给一个参数多于一种类型吗?

ios - 使用 KML 文件 Swift 应用程序

ios - 取消 UIControl animateWithDuration 开始新的动画

ios - 从具有 id 的 UItableview 单元格中获取数据