このエラーが発生するのは、ナビゲーター コントローラー コード (プッシュ) を使用して 1 つの VC から別の VC に移動しようとしている可能性が高く、コードまたは Interface Builder でナビゲーション コントローラーをセットアップしていない可能性が高いためです。
ただし、Navigation Controller を使用せずに VC を表示/非表示にすることができます。これから始めることをお勧めします。
用語に注意してください。push/pop はナビゲーション コントローラー スタック上の VC に使用され、present/dismiss は (Navigation Controller スタックではなく) 他の VC 上の VC に使用されます。
別の VC の「トップ」に VC を表示する方法は 2 つあります。これは、その VC が SB にも存在するかどうかによって異なります。
1- VC が IB に存在せず、プログラムで VC を作成して提示するだけの場合は、次のことができます。
MyUIViewControllerSubclass *myLittleSubclass=[[MyUIViewControllerSubclass alloc]init];
myLittleSubclass.view.frame=self.view.frame; //this is for example only
[self presentViewController:myLittleSubclass animated:YES completion:nil];
上記の場合、MyUIViewControllerSubclass Objective C クラスを最初にプロジェクトに追加し (追加ファイルを使用)、上記のコードを配置するクラスにインポートする必要があります。
後でそれを閉じるには、MyUIViewControllerSubclass クラス自体から次のコードを使用できます。
[self.parentViewController dismissViewControllerAnimated:YES completion:nil];
2- MyUIViewControllerSubclass Objective C クラスをプロジェクトに (追加ファイルを使用して) 既に追加しているが、IB を使用してそれを設計する予定であり、IB に VC を追加し、IB でそのクラスを MyUIViewControllerSubclass に変更した場合は、次に、このコードを使用できます。
mySubclass *myLittleSubclass=[self.storyboard instantiateViewControllerWithIdentifier:@"theVC"];
[self presentViewController:myLittleSubclass animated:YES completion:nil];
上記と同様に退会できます。SB で VC をクリックし、ID インスペクタで SB ID を「theVC」として入力し、「Use SB ID」をチェックしてください。
お役に立てれば。