複数のViewControllerを切り替える方法

前回の続き。オリジナルのタブバーを作って、複数のViewControllerをModalViewを使って切り替える方法について。

合ってるのかわからないけど、出来たので多分合ってる…はず!

まず、メインのViewControllerにデリゲートメソッドを作ります。

デリゲートについてはこの方の画像が初心者の自分には分かり易かったです。

http://kids-education.blog.so-net.ne.jp/upload/detail/m_delegate_modal.png.html

 

その後、切り替えたい各ViewControllerにこんな感じに実装して…

//オリジナルのタブバーが押された時の処理

- (void) changeMenu:(id)sender {

    UIButton *btn = (UIButton*)sender;

    NSString *next = [NSString stringWithFormat:@"%d",btn.tag];

    if (![self.nowViewNumber isEqualToString:next]) {

  //メインViewのデリゲートメソッドに押されたボタンの番号を送る(ついでに自身の番号も送ってます)

        [changeViewDelegate_selectView:self.nowViewNumber :next]; 

      //自身を閉じる

        [self.navigationControllerdismissModalViewControllerAnimated:NO];

    } else {

        NSLog(@"同じよ!");

    }

}

 

そして、メインViewではviewWillAppearで実装した所、出来なかったためviewDidAppearに実装した所できました。

- (void) viewDidAppear:(BOOL)animated {

   //ボタン1が押された時

    if ([self.nextViewNumberisEqualToString:@"1"]) {

        FeedViewController *view = [[FeedViewController  alloc] init];

        UINavigationController *nav = [[UINavigationControlleralloc] initWithRootViewController:view];

        view.changeViewDelegate_ = self;

  //ボタン1を開く

        [self.navigationControllerpresentModalViewController:nav animated:NO];

    } else if ・・・省略

}

 

ちょっと簡単に書きすぎたかな…?いみわかんねーよ!って方がいたら是非言って頂けると嬉しいです!

これで画面の切り替えは楽々出来ると思います!

というかプログラムの部分だけ見やすく表示って出来そう…ブログの使い方も勉強しなくては!