2017-02-23 7 views
0

例えば、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"以外の何もありません。

+3

appがクラッシュするコード作業を追加します。 –

+3

クラッシュログまたはソースを共有します。ビューのライフサイクルイベント中にプログラムでビューを削除しましたか? – Krunal

+0

'refreshControl'オブジェクトを' viewDidAppear'で宣言して初期化し、もう一度コードを実行するか、 'viewDidAppear'コードを' viewDidLoad'に移動してみてください。 –

答えて

0

第2コントローラをポップした後にテーブルビューのデータが存在するかどうかを確認します。データソースが取得されていない可能性があります。テーブルビューのデータを含むArrayの強い参照を維持する

関連する問題