2016-03-26 2 views
0

これはおそらく些細な質問ですが、解決策が見つかりませんでした。私はSwiftを使ってiPhone用アプリを作っています。NavigationViewControllerでビューを変更する

私はいくつかの文字列を持つテーブルビューを持っています。私がボタンを押すと、直前のビューに直接移動したいと思っています。しかし、私のコール

navigationController?.popViewControllerAnimated(true) 

後のコードは常に実行されているが、私は、現在の活動が停止し、前のビューに戻りたいです。

@IBAction func DeletePressed(sender: UIButton) { 
    let deleteIndices = getIndexToDelete() 
    navigationController?.popViewControllerAnimated(true) 

    print("After navigationController") 
    for index in deleteIndices{ 
     results?.ListResults[yearShownIndex].months[monthShownIndex].day[dayShownIndex].results.removeAtIndex(index) 
    } 
    if (results?.ListResults[yearShownIndex].months[monthShownIndex].day[dayShownIndex].results.count == 0){ 
     results?.ListResults[yearShownIndex].months[monthShownIndex].day.removeAtIndex(dayShownIndex) 
    } 
    if (results?.ListResults[yearShownIndex].months[monthShownIndex].day.count == 0){ 
     results?.ListResults[yearShownIndex].months.removeAtIndex(monthShownIndex) 
    } 
    if (results?.ListResults[yearShownIndex].months.count == 0){ 
     results?.ListResults.removeAtIndex(monthShownIndex) 
    } 
    loadView() 
} 

"navigationControllerをした後、" 常に表示されます。

コードは次のようになります。

アンドロイドでは、目的の動作を得るためにインテントを作成して新しいアクティビティを開始しますが、それはどのようにIphoneで動作しますか?

私の問題は、navigationController.popViewControllerAnimatedが呼び出されたときに直接戻ることができるようにしたいということです。これは、if節で後で使用できるように動作する方法を理解するためのおもちゃの例です。

+0

何をしますか? navigationController?.popViewControllerAnimated(true)を押すと、前のビューに戻ります – Roee84

+0

何をしたいのですか?popViewControllerはあなたを元に戻しますが、その下のコードは何ですか?あなたの問題は何ですか? –

答えて

0

viewcontrollerをポップした後に単にreturnステートメントを追加してください:

@IBAction func DeletePressed(sender: UIButton) { 
    let deleteIndices = getIndexToDelete() 
    navigationController?.popViewControllerAnimated(true) 
    return; 
    [...] 
+0

print文はまだ実行されますが、if-clauseは実行されません。ちょっと変わったようだ。 –

+0

これは奇妙です。実行される他のprint文がないことを確かめていますか?通常は 'return'が関数を終了するはずです... –

+0

はい、私は同じと思ってその特定のprintステートメントを変更しましたが、出力も同様に変更されました。 –

0

あなたが後にコードを実行しようとしていない場合は、「印刷(」navigationController後「)」、そのコードを削除

またはDeletePressedが呼び出されたときにトグルその後、削除することはできません、あなたは可能性が

+0

まあ、それは私の行動を理解しなければならないおもちゃの例です。時には私は戻ってほしいと思うこともあります。時には私はその考え方にとどまりたいです。今私はそれが動作することを知っているように毎回戻って行きたい、私はプログラムがprint( "After navigationController")を呼び出さないようにしたい –

関連する問題