0

タブバーコントローラー(2つのタブ)を備えたアプリがあります。1つのタブビューコントローラでは、ボタンはアラートウィンドウにつながります。アラートウィンドウの1つのボタンで、考えられる回答を含むテーブルビューを呼び出す必要があります。そのテーブルビューにdoneボタンと。が必要titleです。つまり、ナビゲーションコントローラーを使用する必要があると思います。しかし、ナビゲーションコントローラーで見つけることができるほとんどすべては、はるかに複雑な状況を想定しています。アラートウィンドウロジックの一部は次のとおりです。

-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{ 
    if (buttonIndex == 2) {
        AnswersViewController *aVC = [[AnswersViewController alloc] init];
        [self presentViewController:aVC
                           animated:YES
                         completion:NULL];    
    }
} 

そしてAnswersViewControllerこのように見えます:

@interface AnswersViewController : UITableViewController
@end

@implementation AnswersViewController

- (id) init
{
    self = [super initWithStyle:UITableViewStylePlain];
    return self;
}


- (id) initWithStyle:(UITableViewStyle)style
{
    return [self init];   

}

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[self view] setBackgroundColor:[UIColor redColor]];

}

@end

このコードはすべて期待どおりに機能します(空の赤UITableViewが表示されます)。

私が推測する2つの質問:1。doneボタンとtitleテーブルビューを表示できるように、持っているものに簡単な変更がありますか?done2.ナビゲーションコントローラーに移動する必要がある場合(おそらく)、ボタン付きの必要最低限​​のナビゲーションコントローラーを作成し、titleその中にテーブルビューを埋め込むにはどうすればよいですか?ああ、私はこれをプログラムでやりたいと思っています。そして、私はdoneボタンを好みtitle、ナビゲーションバーにあると思います。ツールバーは必要ありません。ありがとう!

4

1 に答える 1

1

探しているものを取得するには、UINavigationControllerを使用する必要があります。これにより、タイトルとボタンを表示できるUINavigationBarが提供されます。

UINavigationControllerを使用してこれを実装するには、次のようにスムージングを実行します(ARCを使用していると仮定すると、メモリ管理について心配する必要はありません)。

-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{ 
    if (buttonIndex == 2) {
        AnswersViewController *aVC = [[AnswersViewController alloc] init];

        //Make our done button
        //Target is this same class, tapping the button will call dismissAnswersViewController:
        aVC.navigationItem.leftBarButtonItem =  [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissAnswersViewController:)];

       //Set the title of the view controller
       aVC.title = @"Answers";

        UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:aVC];
        [self presentViewController:aNavigationController
                       animated:YES
                     completion:NULL];
    }
} 

次に- (void)dismissAnswersViewController:(id)sender、UIAlertViewデリゲートメソッドと同じクラスで実装します(ここにある実装に基づいています)。

お役に立てれば!

于 2012-07-07T23:07:57.187 に答える