2010-10-22 2 views
0

Это, вероятно, как меня немного тусклый, я настройка UITableViewController через UINavigationController, я подклассы UITableViewController: (см ниже) и внедрил методы DataSource, чтобы получить мой стол и работаетПодклассификация UITableViewController, что вы получаете?

@interface RootViewController : UITableViewController { 
    NSArray *dataList; 
} 
@property(nonatomic, retain) NSArray *dataList; 
@end 

Мой вопрос: когда я пришел для реализации viewDidLoad для RootViewController, я хотел установить заголовок для таблицы (см. Изображение ниже). Я посмотрел на документы для UITableViewController и обнаружили, что он имел свойство «Tableview», так что я пытался ...

[[self tableView] setTitle:@"Eeek!"]; 

Это не сработало, что я должен был попытаться был ...

[self setTitle:@"Eeek!"]; 

Что мне интересно, когда вы подклассифицируете UITableViewController и добавляете код, который на самом деле имеет дело с tableView, а не с UITableViewController, имеет ли это смысл?

alt text

Гэри

+0

Что именно вы имеете в виду, указав заголовок таблицы? Заголовок, который располагается над ячейками таблицы, или заголовок на панели навигации? – BoltClock

+0

Название на синей полосе, которая находится между панелью состояния iphones и ячейками (см. Выше изображение), заголовок «Eeek!» – fuzzygoat

+0

Получаю, свойство title на самом деле находится в UIViewController, который унаследован UITableViewController. Я сбился с толку, когда не мог видеть «титул» как свойство UITableViewController, теперь я полностью понимаю, что он есть, вам просто нужно следить за крохами бороды. – fuzzygoat

ответ

1

, что вы устанавливаете на самом деле UIViewController (родительский класс UITableViewController) название, что и использует UINavigationController для отображения заголовка в его Панель навигации (синий бар в изображении)

Редактировать, чтобы лучше ответить на вопрос: так что нет, когда вы подклассифицируете UITableViewController, вы на самом деле имеете дело с контроллером, а не с представлением таблицы.

1

Короткий ответ на вопрос, нет - вы все еще имеете дело со свойствами контроллера. Разница между этими двумя setTitle: операциями:

// This message is being sent to the UITableViewController 
[self setTitle:@"Eeek!"]; 

// This message is being sent to the UITableView property of the UITableViewController 
[[self tableView] setTitle:@"Eeek!"]; 

Там нет setTitle: метода на UITableView объекта, так что не удается.

С точки зрения MVC, первый устанавливает свойство на контроллере, а второй устанавливает свойство в представлении.

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