2016-10-01 9 views
0

新しいコードを表示するIBAction(ボタンが押されたとき)の1つにこのコードがあります。ビューコントローラを変更すると、新しいコントローラが表示されますが、すぐに消えます。

let addAlertVC = self.storyboard?.instantiateViewController(withIdentifier: "addAlert") 

self.present(addAlertVC!, animated: false, completion: nil) 

しかし、私は、アプリを実行して、新しいviewcontrollerに私を取ることになっていますボタンを押して、その後私は、元viewcontrollerとこだわっているとき。新しい表示コントローラのviewDidAppear関数にprintステートメントを入れて、ボタンを押すたびに印刷しているので、新しいコントローラが確実に表示されます。私は私のアプリのどこにでも新しいコントローラを却下していません。

私はアプリの他の部分で同じコードを使用していましたので、今度はなぜ動作しないのかが非常に混乱しています。

ご協力いただければ幸いです。

EDIT:私のコードが修正されました。それは私が間違っていたビューコントローラをどのように呼んでいたかではなく、それは私のボタンでした。ボタンを削除してもう一度追加したら、私のコードが動作するようになりました。

+0

新しいVCを読み込んだ後で何をしようとしませんでしたか? – vaibhav

+0

新しいVCがちょうど点滅するので、VCを正しくロードしているかどうかわかりませんでした。そこで、新しいVCが現れたときに、printステートメント(print( "何か起こったこと"))を追加しました。 – kbunarjo

+0

ストーリーボードのスクリーンショットを追加する必要があります。 – vaibhav

答えて

1

あなたがそれを提示した後、あなたのView Controllerが割り当て解除される可能性は非常にあります。

コントローラ内のビューコントローラを関数外に宣言してください。次のようなものがあります。

class ViewController{ 

    var addAlertVC:UIViewController? 

    ... 

    func someFunction(){ 
     addAlertVC = self.storyboard?.instantiateViewController(withIdentifier: "addAlert") 

     self.present(addAlertVC!, animated: false, completion: nil) 
    } 

} 
+0

私はそれを試みたが、うまくいかなかった!まだまだフラッシュしているだけです。 – kbunarjo

関連する問題