2

ストーリーボードに3つのUIViewがありますが、ナビゲーションバーやタブバーを使用せずに、アニメーションのようにプッシュでそれらの間を移動するにはどうすればよいですか?ビューにカスタムボタンがあります。Controlキーを押しながらクリックしてドラッグしても、このエラーは機能しません。

Terminating app due to uncaught exception 'NSGenericException', reason: 'Push segues can
only be used when the source controller is managed by an instance of UINavigationController.
4

2 に答える 2

2

ナビゲーション コントローラーを使用せずに 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 exmaple 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」をチェックしてください。

お役に立てれば。

于 2013-03-06T14:28:57.690 に答える
0

UINavigationControllerプッシュ アニメーションは、親ビュー内で使用する場合にのみサポートされます。View Controllerを1つの編集- >埋め込み-> IBのナビゲーションコントローラーに埋め込み、ナビゲーションバーを非表示にすることができます。これにより、必要な機能が提供される場合があります。

于 2013-03-06T13:17:59.413 に答える