1

私のアプリケーションは、pushViewControllerを使用してナビゲーションコントローラーをモーダルに表示しています

 [navigationController pushViewController:_viewController animated:YES];

ナビゲーションコントローラーはボタンを実行しました

UIButton* backButton = [UIButton buttonWithType:101]; 
[backButton addTarget:self action:@selector(dismissView:) forControlEvents:UIControlEventTouchUpInside];
[backButton setTitle:@"Done" forState:UIControlStateNormal];

UIBarButtonItem* backItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

self.navigationItem.leftBarButtonItem = backItem;
[backItem release];

完了ボタンが押されたら、メインウィンドウに戻る必要があります

-(void) dismissView: (id)sender

{
    [self.navigationController popToRootViewControllerAnimated:YES];
//[self.navigationController popToViewController:_viewController animated:YES];

}

しかし、完了ボタンを押しても何も起こりません。何故ですか?

4

2 に答える 2

1
UIButton* backButton = [UIButton buttonWithType:101];

「101」は無効だと確信しています

+ (id)buttonWithType:(UIButtonType)buttonType

次のUIButtonType値のいずれかを使用する必要があります

typedef enum {
    UIButtonTypeCustom = 0,
    UIButtonTypeRoundedRect,
    UIButtonTypeDetailDisclosure,
    UIButtonTypeInfoLight,
    UIButtonTypeInfoDark,
    UIButtonTypeContactAdd,
} UIButtonType;

それ以外のテストでは、コードをdismissViewにNSLogを配置します。呼び出されるかどうかを確認します。

于 2012-01-17T04:42:26.347 に答える
1

dissmissViewにNSLogしてください

-(void) dismissView: (id)sender

{
   NSLog(@"Hii....");
    [self.navigationController popToRootViewControllerAnimated:YES];
//[self.navigationController popToViewController:_viewController animated:YES];

}

または、ブレークポイントを使用してアプリをデバッグします。

于 2012-01-17T04:49:38.660 に答える