2013-07-14 2 views
0

Если я использую пустой шаблон в Xcode, который просто дает делегат и окно приложения, и я хочу иметь UITableView с навигационной панелью для сверления вверх и вниз, я исправлю, полагая, что я должен просто сделать так: ниже, создайте подкласс UITableView, создайте экземпляр, затем создайте экземпляр navController, установите TableView в качестве корневого представления navControllers и затем добавьте navController в качестве корневого представления окна.UITableViewController сделано вручную

Кажется неправильным создание UITableViewController только для добавления этого в другой подкласс контроллера представления (UINavigationController).

Это правильно?

MyTableViewController *myTableViewController = [[MyTableViewController alloc] initWithNibName:@"MyTableViewController" bundle:nil]; 

    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:MyTableViewController]; 

    [self.window setRootViewController:navController]; 
+1

Обратите внимание, что есть UITableViewController и UITableView. Первый такой же, как и любой другой контроллер представления, в то время как последний является «представлением» и может быть добавлен к другим представлениям (включая представление контроллера вида) точно так же, как этикетка. Возможно, вы захотите рассмотреть, что лучше всего подходит для ваших целей. –

ответ

1

Вы правы. Так вы используете навигационные контроллеры. Они управляют другими контроллерами представлений. (http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/NavigationControllers.html#//apple_ref/doc/uid/TP40011313-CH2-SW27)

+0

Спасибо большое! – Woodstock

+1

@EliGanem Я всегда принимаю ответы! К сожалению, это глупое 10-минутное ожидание, прежде чем вы сможете принять ответ, не говоря уже о глупой минимальной длине комментария. не будучи в состоянии сказать «Спасибо» вместо «Спасибо, много!» глупо. – Woodstock

1

Да, это правильно. Контроллер навигации - это контейнер, целью которого является управление стеком контроллеров представлений, поэтому он очень отличается от контроллера табличного представления. Попробуйте шаблон основной детали и сравните различия.

+0

Спасибо большое! – Woodstock

1

Вы верны. Я также рекомендовал бы использовать структуру представлений таблиц (например, бесплатную Sensible TableView) для управления всеми вашими диспетчерами подробных представлений вместо того, чтобы создавать их вручную.