例えば、ViewController1
にはUITableview
のオブジェクトとデータがあります。別のコントローラにViewController1
からViewController2
にプッシュします。ポップビューコントローラの後でUITableviewの参照が失われました
私の問題は、私はViewController2
からViewController1
その後、UITableview
オブジェクトリターンnil
にポップしようとしていますし、私のアプリケーションがあるcrashed.This問題がしばしば発生したときです。
私は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! 致命的なエラー:アンラッピング中に予期せぬエラーが発生しました。オプション値
リフレッシュコントロールは、 "UIRefreshControl()object"以外の何もありません。
appがクラッシュするコード作業を追加します。 –
クラッシュログまたはソースを共有します。ビューのライフサイクルイベント中にプログラムでビューを削除しましたか? – Krunal
'refreshControl'オブジェクトを' viewDidAppear'で宣言して初期化し、もう一度コードを実行するか、 'viewDidAppear'コードを' viewDidLoad'に移動してみてください。 –