どのストーリーボードが常にアクティブであるかを特定する方法を考え出す必要があります。ストーリーボード (UIView) を識別し、ユーザーが何を押したかに応じてプログラムで変更する必要がある特殊なネイティブ化があります。
- すべてのストーリーボードには識別子があります。
- ルートビューのviewDidLoadには次のものがあります。
- (void)viewDidLoad
self.topViewController =
[storyboard instantiateViewControllerWithIdentifier:@"View1"];
{
私がやりたいことは、ユーザーがどのストーリーボードにいるかを特定し、プレスに応じて次のsudoコードを実行することです
- (void)viewDidLoad
if (storyboard.name != RootView)
self.topViewController =
[storyboard instantiateViewControllerWithIdentifier:@"View1"];
{
else if (storyboard.name = View2){
self.topViewController =
[storyboard instantiateViewControllerWithIdentifier:@"View2"];
}
等....
私はコードをステップ実行して StoryboardID を見ましたが、それはあなたが使用するつもりはないと確信しています....
前もってありがとうジェレミー
更新: ナビゲーションへの説明
を実装しようとしてECSlideViewController
いますが、頭を悩ませています。スライドを適切な機能に効果的に追加して、より多くのオプションを明らかにしています。だから、この考えは簡単になるだろうと思っていたが、厄介なものになった. 私はマスターUIViewController<title:HomeView>
を持っています。次に、画面に4つのボタンがあり、他のボタンUIViewControllers<View1>
などUIViewController<View2>
に移動します。
View1、View2、View3、View4 で効果を生み出すには、(ECSlideViewController
例のように) クラスをUIViewController<HomeView>
. ただし、これを表すために以下のコードを変更すると...
self.topViewController =
[storyboard instantiateViewControllerWithIdentifier:@"HomeView"];
自分自身を呼び出すため、クラッシュします。よくない、循環コーディングはノーノーです。
しかし、元々あったものに設定すると
self.topViewController =
[storyboard instantiateViewControllerWithIdentifier:@"FirstTop"];
(ところで、firstTop は例で使用されるビューのタイトルです)
それは機能しますが、その後無視しますUIViewController<HomeView>
これが、 の を特定する方法があるかどうかを尋ねた理由ですself.title
(UIViewController
ストーリーボードと言った...私の悪い) にある場合はコードを入れないように、その周りに条件付きロジックを配置するつもりでしたUIViewController<HomeView>
。
ECSlideViewController
をダウンロードして遊んでみないと説明が難しいです。しかし、効果的には、self.titleをテストしたいだけです.....私は思う...
もう1つのアイデアは、ロジックを4つのうちの に持ち込み、UIViewControllers
そこで動作させることでした...しかし、識別子を期待しているため、nilを渡すとびっくりします...
これが理にかなっていることを願っています....
J.