2010-01-19 2 views
2

Я работаю над традиционным приложением iPhone UINavigationController с автоматическими кнопками возврата и т. Д.Есть ли инверсия `setEditing`, когда редактирование завершено?

Я работаю над тем, когда нажата кнопка «Изменить». Значок задней панели LHS тускнеет, появляется мой новый, а затем, как только я снова нажимаю кнопку «Изменить», возвращается задняя кнопка.

До сих пор кнопка «Назад» уходит, и мой новый входит, но я не могу вернуть его обратно! Я знаю, что должен делать код, но я не знаю, где его назвать.

Вот то, что я до сих пор:

(void)setEditing:(BOOL)editing animated:(BOOL)animated { 
    [self.navigationItem setHidesBackButton:editing animated:animated]; //fades back button 

//de 006 - Load in Move section button here. 
UIBarButtonItem *saveButton = [[[UIBarButtonItem alloc] 
           initWithBarButtonSystemItem:UIBarButtonSystemItemOrganize 
           target:self action:@selector(altersection:)] autorelease]; 

self.navigationItem.leftBarButtonItem = saveButton; 

В основном я хочу инверсию (void)setEditing:(BOOL)editing animated:(BOOL)animated {, где я могу сделать:

self.navigationItem.leftBarButtonItem = nil; //custom button hide 
self.navigationItem.hidesBackButton = NO;  //replace back button 

Есть ли обратная (void)setEditing:(BOOL)editing?

ответ

3

Не уверен, что я полностью понял вопрос:/

При нажатии на кнопку «Готово», я считаю, setEditing прибудете снова называется, но с NO как редактирования параметра.

Так setEditing вы можете проверить:

if(editing) { .... } 

Чтобы увидеть, если мы входе или выходе из состояния редактирования.

+0

да, что помогло;) – oberbaum

0

Вам просто нужно pu if condition in setEditing. Тот же метод вызывается при любом действии на кнопке редактирования. Вы можете иметь код, как

if(self.navigationItem.leftBarButtonItem) 
{ 
self.navigationItem.leftBarButtonItem = nil; 
self.navigationItem.hidesBackButton = NO; 
} 

Вы также можете проверить оба условия в случае.

Смежные вопросы