3

iPhoneのボタンでビューを切り替える方法の投稿を見ましたか?しかし、これはボタンでビューを前後に切り替える方法には答えません。質問をした人は、uinavigationcontroller でビューを切り替えることができるという答えに落ち着きました。

プライマリ ビューでボタンが押されたときに開始される ibaction に次のコードを追加しました。

         PhoneNumberViewController *phoneNumberViewController1 = [[PhoneNumberViewController alloc] initWithNibName:@"PhoneNumberView2" bundle:nil];
self.phoneNumberViewController = phoneNumberViewController1;
[self.view removeFromSuperview];
[self.view insertSubview: phoneNumberViewController1.view atIndex:0];

このコードを実行すると、ビュー全体が空白になります。removefromsuperview 部分を省略すると、ビューはボタンの後ろに消えますが、ボタンは残ります。これがボタンを切り替える正しい方法かどうかはわかりませんが、誰かがこれを行う方法を知っている場合は助けてください. また、ボタンでビューを切り替えるサンプル プロジェクトについて誰かが知っている場合は、お知らせください。

どうもありがとう!

4

2 に答える 2

1

私が通常使用する手法には、下部にツールバーを含むスーパービュークラスと、画面の残りの部分を埋めるコンテンツビューUIViewクラスを作成することが含まれます。

次に、サブビューをコンテンツビューに追加して、ボタンのクリックに基づいてビューを変更します。このアプローチにより、同じツールバーがすべてのビューで一定になります。まず、次のようなヘルパー関数を定義します。

-(void) clearContentView {
    //helper to clear content view
    for (UIView *view in [self.contentView subviews]){
        [view removeFromSuperview];
    }
}

私のIBActionは次のようになります。

-(IBAction) buttonClicked{
    self.title = @"Images"; //change title of view
    [self clearContentView]; //clear content view
    [self.contentView addSubview:self.imagesViewController.view]; //add new view
    [self.imagesViewController viewWillAppear:YES]; //make sure new view is updated
    [self enableButtons];  //enable all other buttons on toolbar
    self.imagesButton.enabled = NO;  //disable currently selected button
}
于 2009-06-09T04:49:32.650 に答える