を持っていてNavigation Controller
、戻るボタンを押したときにビューをポップしたくありませんが、ビューを表示しUIAlertView
たいのUIAlertView
です。どのようにできるのか?「戻るボタンが押されました」というイベントをキャッチしようとしましたが、結果はありません:(
1416 次
4 に答える
3
viewDidload 内にUIBarButtonItemを作成し、ナビゲーション バーに追加します。
UIBarButtonItem *backButton=[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(backButtonClicked)];
self.navigationItem.leftBarButtonItem=backButton;
backButton がクリックされたときに呼び出されるメソッドを作成する
-(void)backButtonClicked{
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Pop View!" message:@"Are you sure?" delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes", nil];
[alert show];
}
UIAlertView のボタンがクリックされたときに呼び出されるこの UIAlertView デリゲート メソッドを記述します。
-(void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex{
if (buttonIndex==1) {
[self.navigationController popViewControllerAnimated:YES];
}
}
注: ヘッダー ファイルに UIAlertView デリゲートを追加することを忘れないでください<UIAlertViewDelegate>
于 2012-09-18T10:05:09.827 に答える
1
viewWillDisappear
次のような方法で戻るボタンが押されているかどうかを確認できます(ここから取得)。
-(void)viewWillDisappear:(BOOL)animated {
if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound && self.isBackButtonPressed) {
// back button was pressed. We know this is true because self is no longer
// in the navigation stack.
}
[super viewWillDisappear:animated];
お役に立てれば!
于 2012-09-18T09:59:59.300 に答える
0
このコードに従ってください
ボタンアクションで。
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message" message:@"Do you want to open?" delegate:self cancelButtonTitle:@"NO" otherButtonTitles:@"YES", nil];
[alert show];
//Alert View delegate method
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(buttonIndex==0)//NO
{
//your code
}
else if(buttonIndex==1)//YES
{
// your code
}
}
于 2012-09-18T09:54:07.450 に答える
0
UIAlertview デリゲート メソッド clickedButtonAtIndex でポップを実装します。戻るボタンを押すには、UIAlertview の表示のみを実装する必要があります。
これを参照
于 2012-09-18T09:48:46.130 に答える