0

理由はわかりませんが、メイン ビューに戻る方法を見つけようとして非常に苦労しています。以下のコードを使用して新しいビューに切り替えましたが、元に戻すにはどうすればよいですか?

@IBAction func printPage(sender: AnyObject) {
        var vc = self.storyboard?.instantiateViewControllerWithIdentifier("labelView") as PrintLabelView
        self.presentViewController(vc, animated: true, completion: nil)
        vc.toPass = skuLabel.text
    }
4

3 に答える 3

1

UIViewController を提示しているので、提示された UIViewController に戻るボタンが必要です。これをクリックすると、ユーザーは戻ることができます。

そのボタンの IBAction には、次のコードを含めることができます。

@IBAction func goBack() {
    dismissViewControllerAnimated(true, completion:nil)
}

ナビゲーション ビュー コントローラーを使用している場合、デフォルトで機能が提供されます。

于 2015-03-25T16:33:52.890 に答える
1

アンワインドを使用します。

MainViewController で

@IBAction unwindSegue(segue: UIStoryboardSegue, sender: UIStoryboardSegue){//any code you want executed upon return to mainVC
}

NewViewController で

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?){//pass any information from New to Main here
}

次に、NewVC で、巻き戻したい UIButton から NewVC のExitシンボルにコントロール + ドラッグし、選択します。unwindSegue

*

*

注: また、アンワインドをボタンからではなくプログラムで実行する場合も同様です。 ここに画像の説明を入力 NewVC の黄色から Control キーを押しながらドラッグして終了します。これにより、「終了」の下にアンワインド セグエが作成さここに画像の説明を入力れます。この「アンワインド セグエ」を選択し、属性インスペクターで識別子を指定します。ここに画像の説明を入力

NewVCで関数を作成します

func NameYourFunc(){performSegueWithIdentifier("TheIdentiferYouUsed", sender: self)}

このアンワインドを実行したい場合は、NewVC コードのどこでも呼び出すだけです。NameYourFunc()

于 2015-03-25T19:10:55.450 に答える
0

戻るのが難しいとわかった前に同様の問題がありました.1番目になかったのはナビゲーションコントローラーであり、以下のコードが必要でした

func goToMainVC() {
    if let navController = self.navigationController {
        navController.popToRootViewControllerAnimated(true)
    }
}

ここで同様の問題が発生したときに投稿された回答を見てください

これが役立つことを完全に願っています

于 2015-03-25T16:25:56.663 に答える