Я считаю, что проблема заключается в том, что ваши контроллеры представления, которые вы добавили в контроллер вкладок, не инкапсулированы контроллерами навигации.Хотя ваш UITabBarController имеет контроллер навигации, он неявно предоставляет все свои контроллеры навигации вкладок (и без контроллера навигации, контроллер вида navigationItem
ничего не будет делать). Чтобы исправить эту проблему, я бы предложил инкапсулировать ваше представлениеконтроллеры с навигационным контроллером при инициализации:
пример:
UserSettingsController *settingsController = [[UserSettingsController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:settingsController];
[settingsController release];
// etc...
NSArray *controllers = [NSArray arrayWithObjects:navController, ..., ..., nil];
tabBarController.viewControllers = controllers;
// Release your nav controllers, other cleanup
РЕДАКТИРОВАТЬ
Хорошо, я думаю, у меня есть лучшее представление о вашей настройке сейчас,Я смог заставить работать следующее:
self.tabBarController.navigationItem.rightBarButtonItem = myButton;
Важным предупреждением этого является то, что кнопка будет сохраняться во всех представлениях вашего tabbarcontroller, если вы явно не удалите ее.Это может раздражать / неуместно поддерживать, но я не уверен в другом решении, если представление, которое вы хотите иметь для кнопки, не связано напрямую с самим контроллером навигации.