Итак, я создал UINavigationController вручную, установил его как rootViewController моего UIWindow, и я хотел бы использовать кнопку возврата, чтобы выйти из UINavigationController и загрузить на место другой viewController. Однако свойство backItem для UINavigationBar является readonly, поэтому я не знаю, как правильно его установить (он только для чтения и по умолчанию имеет значение nil в корневом навигационном представлении). Как я могу достичь этого (или аналогичного эффекта, я хочу, чтобы эффективно "выйти" с этого UINavigationController, нажав кнопку "Назад" в корневом представлении).
В качестве альтернативы, это плохая форма? Как я могу избежать корневого представления UINavigationController?
EDIT:
Попытка решения Legolas со следующим кодом: (некоторые имена были изменены)
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:plvc]; // plvc being the first viewcontroller
MyAppDelegate* appDelegate = [Utility getAppDelegate];
appDelegate.window.rootViewController = navController;
UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithTitle:@"Start" style:UIBarButtonItemStyleBordered target:self action:@selector(initializeStuff)];
navController.navigationItem.leftBarButtonItem = backButton;
[navController.navigationItem setHidesBackButton:YES animated:YES];
[navController.view setNeedsDisplay];
Но кнопка не отображается. Что я делаю не так? Другие обратные кнопки отображаются правильно, но этого еще нет.