2012-04-01 1 views
0

У меня возникли проблемы с настройкой кнопок навигации на моем UITableViewController! этот контроллер находится внутри UINavigationController.Проблемы с кнопкой навигации UITableViewController

Я следующий вид контроллера:

@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 right-barbutton «Done» на «Edit», хотя я делаю это в методе Cancel, как показано выше.

что с этим кодом?

, когда я отладки, я не могу видеть следующее в отладочный области:

ро self.navigationItem

Любая идея, почему?

Спасибо заранее,

Рама

+0

ли 'self.editButtonItem' есть память? Если нет, сделайте это. – tipycalFlow

+0

Спасибо за ваши комментарии. Нет, я не могу видеть память. но он устанавливает кнопку редактирования после выполнения: self.navigationItem.rightBarButtonItem = self.editButtonItem; – Krishna

ответ

1

Простой, набор editingNO к:

- (IBAction)Cancel:(id)sender { 
    //cancel 
    self.editing = NO; //--> This is the trick!!!!!! 
    self.navigationItem.rightBarButtonItem = self.editButtonItem; 
    self.navigationItem.leftBarButtonItem = nil; 
} 
+0

+ !, не думал! – tipycalFlow