У меня возникла проблема с моим проектом.Доступ к корневому UINavigationController из нажатого UIViewController
Каждый раз, когда я пытаюсь получить доступ к моему UINavigationController из Pushed UIViewController, я получаю «(null)» в качестве возврата.
Так что это мой проект структурирован:
1. AppDelegate.m initalises UINavigation Controller
2. UINavigation Controller starts with Welcome Page
3. Welcome Page Pushes New UIViewController on Button Press
4. UIViewController returns (null) when self.navigationController called
ОК, так что здесь какой-то код, в моей странице приветствия я звоню это:
MyClass *theChatRoom = [[MyClass alloc] initWithNibName:@"ChatRoom" bundle:nil];
[theChatRoom setTitle:[unitCode text]];
[self.navigationController pushViewController:theChatRoom animated:YES];
Который работает нормально, это толкает новый контроллер View.
Но в MyClass.m:
@implementation MyClass
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
NSLog([NSString stringWithFormat:@"%@",self.navigationController]);
}
return self;
}
Это возвращает (нуль)
Что я делаю неправильно?
Хороший ответ. Однако я пытаюсь сделать это 'UIBarButtonItem * backButton = [[UIBarButtonItem alloc] initWithTitle: @« Back »style: UIBarButtonItemStyleBordered target: nil action: nil]; [[[навигационная система навигации] навигационная функция] setBackBarButtonItem: backButton]; 'и не может заставить его работать. Что дает? – Moe
Nevermind, обнаружил, что вам нужно установить кнопку «Назад» в родительском контроллере просмотра, а не в сам контроллер просмотра. – Moe
Просто сделал это в действительно сложном проекте и за то, чего он не заслужил, не назначал non nil на viewDidLoad. Может быть, какой-то уродливый взлом ниже в проекте, на котором я нахожусь. Попробуй это в чистом проекте. – cynistersix