2009-12-18 4 views
1

У меня есть некоторые проблемы с pushViewController. По сути, до сих пор у меня есть класс (UIViewController), который по существу является UITableView (у меня есть делегаты для UITable), и он показывает UITable fine. Теперь я хочу, чтобы это была иерархическая таблица, которая сводится к другому контроллеру ...Objective-C: navigationController pushViewController & NIB

Проблема в том, что до того, как я внес это изменение, файл NIB из-за своей структуры имеет владельца файла и его вторую вкладку (поэтому в текущем контроллере нет UIApplicationDelegate, но есть приложение). У меня есть окно с видом и UITable под ним.

Так мой первый контроллер:

@interface PostsViewController : UIViewController{ 

//@private 

NSFetchedResultsController   *fetchedResultsController; 
UITableView       *tableView; 
UINavigationBar      *navBar; 

}

Я считаю, что я имел в виду, чтобы изменить это, чтобы быть NavController или что-то, чтобы быть в состоянии нажать на контроллер представления с навигационной панели сверху что ссылки назад?

Как мне это сделать?

Благодаря

ответ

1

Ваш контроллер начального представления будет UINavigationController вместо текущего контроллера настольного представления. Затем вы нажимаете свои контроллеры представления таблиц на этот контроллер навигации.

Контроллер навигации позаботится о панели навигации, поэтому вы можете удалить это из своего PostsViewController.

Ваш PostsViewController будет знать, когда он был добавлен в UINavigationController; будет установлено его имущество navigationController. Вы используете это свойство для доступа к вашему текущему контроллеру представления для нажатия и отображения других контроллеров представлений.

+0

HI Darren Я внес изменения класса, чтобы изменить тип на UINavigationController, но когда я построю, я получаю пустой экран. Итак, что мне нужно сделать с точки зрения переконфигурации или конфигурации на стороне XIB/NIB? – Doz

+0

Обратите внимание, что в настоящее время таблицы в UINavigationController) заполняются через CellForRowAtINdexPath и т. Д. – Doz

+0

Вы не меняете свой NIB. Вы меняете код в делетете приложения, в котором создается и добавляется элемент управления начального представления. Сейчас он добавляет ваш PostsViewController в окно. Вместо этого создайте общий UINavigationController и добавьте это в свое окно. Затем добавьте свой PostsViewController в контроллер навигации. – Darren

1

Ваше приложение должно иметь UIApplicationDelegate.

В своем методе applicationDidFinishLaunching: добавьте контроллер навигации в окно и нажмите первый UITableViewController в качестве корня.

Чтобы увидеть пример кода, создайте новое приложение на основе навигации в Xcode и посмотрите на его метод applicationDidFinishLaunching:.

+0

Привет, нет, я имел в виду, что у моего приложения есть приложение AppDelegate, но мой текущий контроллер/контроллер таблиц отсутствует. Проблема не в этом, но я упомянул об этом с целью узнать, что доступно для подключения для просмотра и т. Д. – Doz

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