2009-02-07 3 views
3

Достаточно просто настроить табличное представление, позволяющее редактировать. Просто добавьте одну строку в UITableViewController:Можете ли вы установить кнопку редактирования navbar в Interface Builder?

self.navigationItem.rightBarButtonItem = self.editButtonItem; 

Эта строка добавляет кнопку редактирования на панели навигации, который изменит таблицу в режим редактирования и изменить его текст кнопки «Готово» в процессе редактирования.

Можно ли установить это в Interface Builder? Я вижу, что вы можете добавить UIBarButtonItem и можете установить его «Идентификатор» в «Редактировать», но я не вижу ожидаемого поведения.

BTW, что делает «Идентификатор» в панели «Атрибуты»?

ответ

1

Да, вы можете добавлять UIBarButtonItems в Interface Builder, и они должны работать.

Идентификатор позволяет использовать предустановленную кнопку (например, «Редактировать» или «Обновить»), или вы можете выбрать «Пользовательский» и создать свою собственную кнопку.

EDIT: Возможно, я смогу помочь, если вы могли бы объяснить, как UIBarButtonItems, добавленные через IB, не работают.

UPDATE: UIViewController.editButtonItem это специальный метод, который возвращает UIBarButtonItem, который вызывает метод setEditing представления. Вы можете добиться такого же эффекта, создав метод, который делает то же самое, и подключив селектор к вашему UIBarButtonItem в IB.

В файле заголовка:

- IBAction edit:(id)sender; 

и в файле реализации:

- (IBAction) edit:(id)sender { 
    [self setEditing:YES animated:YES]; 
} 

затем подключите переключатель к UIBarButtonItem.

Однако, возможно, вы не сможете создать это соединение в шаблоне приложения на основе навигации по умолчанию, так как представление таблицы находится в отдельном файле.

+0

- Новый проект: навигационное приложение. - RootViewController.m: uncomment viewDidLoad и self.nav ... строка - Запуск. Нет данных в таблице, но нажмите «Изменить», чтобы увидеть, что оно изменилось. Можете ли вы перестроить строку и получить поведение с помощью изменений в MainWindow.xib? Или это только программно? – DrGary

+2

Итак, как вы можете создать 'editButtonItem' специально в Interface Builder? ИМХО, вы выбрали ответ на другой (тривиальный) вопрос в то время. – Drux

0

Посмотрите здесь: http://blog.tmro.net/2009/05/uitabbarbuttonitem-did-not-change-its.html

Если вы хотите, чтобы ваша кнопка, чтобы быть в состоянии изменить свою метку динамически убедитесь, что вы используете пользовательский идентификатор в противном случае его название будет неизменен.

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