Как обернуть UITableView с помощью UINavigationController?

#objective-c #cocoa-touch #ios

#objective-c #cocoa-touch #iOS

Вопрос:

Я новичок в разработке iPhone, и у меня возникли проблемы при попытке реализовать UINavigationController.

Я реализовал ViewController следующим образом:

 @interface FirstViewController : UITableViewController <UIActionSheetDelegate> {

    IBOutlet UITableView *table;  

    /* added later but it dont know what to do to show it first*/
    IBOutlet UINavigationController *navigationController; 
    }

@end
  

введите описание изображения здесь

Этот TableView работает хорошо. Но я хочу обернуть вокруг контроллера навигации, чтобы иметь возможность отображать следующий вид после щелчка по строке.
Проблема в том, что я не понимаю, что мне делать с файлом NIB. У меня есть drag-n-dropped там UIViewController — но я не могу установить его как view. Потому что я не могу перетащить соединение из представления владельца файла в UIViewController. Что я должен сделать, чтобы это выглядело как таблица в навигации, а не как обычная таблица.

Ответ №1:

UINavigationViewController будет владеть UITableViewController. Таким образом, AppDelegate настроит UINavigationViewController, а затем верхняя часть стека начнется как ваш контроллер представления таблицы.

Комментарии:

1. Итак, как сделать так, чтобы ‘UINavigationViewController был владельцем UITableViewController’ ? Должен ли я изменять наследование FirstViewController? Спасибо.

Ответ №2:

в вашем tableView:didSelectCellAtIndexPath: методе создайте новый контроллер, затем вставьте его в свой навигационный контроллер.

 [self.navigationController pushViewContrller:controller animated:YES];
  

затем отпустите контроллер, потому что навигационный контроллер сохраняет его.

 [controller release];
  

Комментарии:

1. это сработает, только если ваш навигационный контроллер настроен как представление Windows