Добавьте UINavigationBar к UITableViewController без UINavigationController

У меня есть существующий UITableViewController, который ранее использовался в UINavigationController.

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

Я попытался открыть XIB, добавить новое представление, переместить UITableView в подпредставление и добавить NavigationBar к этому новому представлению. Однако, похоже, это не оказывает никакого влияния, и все табличное представление все еще представлено - никакой навигационной панели не видно. Я думаю, что это потому, что класс является подклассом UITableViewController.

Нужно ли конвертировать это в UIViewClass? Есть ли хороший подход для добавления панели навигации в коде или через Interface Builder к существующему UITableViewController?

Спасибо за любой совет о том, как подойти к этому.

1 ответ

Решение

Вы изменили соединение в XIB для представления "Владелец файла"? Он должен указывать на внешний вид, который содержит как панель навигации, так и таблицу.

Но я не уверен, что понимаю, почему вы не хотите использовать навигационный контроллер. Просто сделай это:

MyViewController *viewController = [[[MyViewController alloc] init] autorelease];
UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:viewController] autorelease];
[self presentModalViewController:navController animated:YES];

Я делаю это все время при представлении модального представления - это выглядит чище, чем включение навигационной панели непосредственно в представление.

Другие вопросы по тегам