Как изменить UIBarButtonItem в UINavigationBar

Я пытаюсь настроить список объектов, которые могут быть отредактированы. У меня есть основное представление с UINavigationBar наверху и UITableView непосредственно под ним. Я хотел бы иметь свое изменение кнопки "редактирования" в "сделанной" кнопке по щелчку, но я не могу выяснить, как сделать это.

Если я мог бы сделать это в коде (не, это соединяет интерфейсом с разработчиком), я мог просто заменить его, но я не могу даже сделать этого. Я видел, что некоторый код использовать [self.navigationItem], но в моем случае сам является UIView.

Это также чувствует себя немного нечетным для использования UINavigationBar, когда я не хочу навигацию (это - только одна страница), но я хочу панель инструментов с заголовком, и и кнопка, таким образом, я не думаю действительно, имеет выбор.

8
задан Peter Hosey 4 April 2010 в 05:09
поделиться

3 ответа

Я создаю одну кнопку, которая может изменяться с Edit на Done.Это совет из книги More iPhone Development.

- (void)viewDidLoad {
    [super viewDidLoad];

    UIBarButtonItem *editButton = self.editButtonItem;  
    [editButton setTarget:self]; 
    [editButton setAction:@selector(toggleEdit)]; 
    self.navigationItem.leftBarButtonItem = editButton; 
}

И метод toggleEdit

- (IBAction)toggleEdit { 
    BOOL editing = !self.tableView.editing; 
    self.navigationItem.rightBarButtonItem.enabled = !editing; 
    if (editing) {
        self.navigationItem.leftBarButtonItem.title = NSLocalizedString(@"Done", @"Done");
        //Added in the edition for this button has the same color of the UIBarButtonSystemItemDone
        self.navigationItem.leftBarButtonItem.style = UIBarButtonItemStyleDone;
    } else {
        self.navigationItem.leftBarButtonItem.title = NSLocalizedString(@"Edit", @"Edit"); 
        //Added in the edition for this button has the same color of the UIBarButtonSystemItemDone
        self.navigationItem.leftBarButtonItem.style = UIBarButtonItemStylePlain;
    }
    [self.tableView setEditing:editing animated:YES]; 
} 

Тогда вам не нужно ничего заменять.

16
ответ дан 5 December 2019 в 07:34
поделиться

Понятно! Похоже, вы можете перейти к UINavigationItem с помощью свойства topItem. Просто нужно было прочитать документацию, как всегда!

0
ответ дан 5 December 2019 в 07:34
поделиться

Когда вы используете self.editButtonItem, вам не нужно менять стиль и текст кнопки, это делается автоматически. Попробуйте удалить этот код, он все равно будет работать :)

4
ответ дан 5 December 2019 в 07:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: