UITableViewControllerのナビゲーションボタンの設定に問題があります!このコントローラーはUINavigationController内にあります。
私はViewControllerをフォローしています:
@interface SettingsViewController : UITableViewController<UITextFieldDelegate, UINavigationControllerDelegate> {
}
...........
@end
および実装ファイル:
- (void)viewDidLoad
{
self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
プログラムでナビゲーションボタンアイテムを追加しています。
編集:
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
//[self.navigationItem setHidesBackButton:editing animated:YES];
if (!editing)
{
self.navigationItem.leftBarButtonItem = nil;
[self save];
}
else
{
UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(Cancel:)];
self.navigationItem.leftBarButtonItem = cancelButtonItem;
cancelButtonItem = nil;
}
}
-上記の編集機能は、ナビゲーションボタンの設定に関しては正常に機能しているようです
キャンセル:
- (IBAction)Cancel:(id)sender {
//cancel
self.navigationItem.rightBarButtonItem = self.editButtonItem; --> this is not setting edit button.
self.navigationItem.leftBarButtonItem = nil;
}
-しかし、キャンセルをクリックしても、navigationitemの右バーボタン「完了」が「編集」に置き換えられません。上記のようにキャンセルメソッドでこれを行っていますが。
このコードの何が問題になっていますか?
デバッグすると、デバッグ領域に次のように表示されません。
po self.navigationItem
なぜですか?
前もって感謝します、
ラーマ