如何在 UITabBarController 中向 UINavigationController 添加右键?
Posted
技术标签:
【中文标题】如何在 UITabBarController 中向 UINavigationController 添加右键?【英文标题】:How to add a right button to a UINavigationController in a UITabBarController? 【发布时间】:2012-08-15 13:29:57 【问题描述】:我有一个包含 UITabBarController 和 UINavigationController(UITabBarController 的选项卡之一)的类:
@interface HomeController : NSObject
UINavigationController *maps;
UIBarButtonItem* national;
@property (retain, nonatomic) UIWindow *window;
@property (retain, nonatomic) UITabBarController *tabBarController;
@end
在 .m 文件(init 方法)中,这是我正在尝试的方式,但它不起作用:
self.tabBarController.viewControllers = [NSArray arrayWithObjects:adminController, maps, sitesController, nil];
我想将国家按钮作为我的 UINavigationController *maps 的 rightBarButtonItem,所以我在 init 方法(.m 文件)中插入了这些行:
national= [[UIBarButtonItem alloc] initWithTitle:@"national" style:UIBarButtonItemStyleDone target:nil action:nil];
maps.navigationItem.rightBarButtonItem = national;
[national release];
因为我的类不是在 viewDidLoad 方法中插入代码的视图(NSObject 的子类)。
【问题讨论】:
你的属性合成了吗? 我在(地图类)的 viewDidLoad 中插入了该代码,它起作用了,我没有删除问题,因为它可能有一天会帮助某人。 如果您找到了解决方案,请为您的问题添加一个解释它的答案。 【参考方案1】:Maps 本身并不是一个 viewController,而是一个管理视图的容器对象。在某些时候,地图有一个或多个 viewController——它应该总是有一个 rootViewController。所以试试这个:
...create and initialize maps
UIViewController *firstView = maps.rootViewController;
firstView.view; // force it to load its view, may or may not be necessary
firstView.navigationItem.rightBarButtonItem = national;
【讨论】:
以上是关于如何在 UITabBarController 中向 UINavigationController 添加右键?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 View 获取数据到 UITabBarController
如何在特定索引处显示 UITabBarController?
如何防止 UITabBarController 更新子视图?
如何在 uitabbarcontroller 中的 uibutton 单击事件上推送其他视图控制器?