У меня есть проблема, откуда я могу успешно продвинуть новый контроллер представления своего корневого контроллера представления (использующий Основанное на навигации приложение с помощью шаблона Core Data), но представление детали, которое является отдельным xib файлом от корневого контроллера представления, не отображает заднюю кнопку навигации. Я уверен, что сделал все надлежащие соединения в IB, и все остальное работает как ожидалось.
RootViewController.h
@class ItemsViewController;
@interface RootViewController : UITableViewController {
IBOutlet ItemsViewController *itemsVC;
}
@property (nonatomic, retain) IBOutlet ItemsViewController *itemsVC;
@end
RootViewController.m
#import "ItemsViewController.h"
@synthesize itemsVC;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Pushes to ItemsViewController
ItemsViewController *itemsViewController = [[ItemsViewController alloc] initWithNibName:@"ItemsViewController" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:itemsViewController animated:YES];
[itemsViewController release];
}
ItemsViewController является подклассом UITableViewController со своим собственным xib, также названным ItemsViewController. Снова, это продвинуто от RootViewController, но кнопка "Назад" не обнаруживается как это. У меня создалось впечатление, что это была "свободная" функция использования контроллера навигации. Как Вы могли бы ожидать, это - очень расстраивающий контрольно-пропускной пункт, и я ценил бы любую справку.
Устанавливает ли ваш класс ItemsViewController
свое свойство title
в своем viewDidLoad
метод?
Вы должны вызвать [tableView deselectRowAtIndexPath: indexPath animated: YES]
в качестве последней строки tableView: didSelectRowAtIndexPath:
, чтобы соответствовать рекомендациям Apple по интерфейсу пользователя.
Да, убедитесь, что у вас есть заголовок в вашем RootViewController, если его нет, никакая кнопка не появится. Чтобы задать заголовок программно;
self.navigationItem.title = @"Hello Der";