【问题标题】:Add UIBarButtonItem to UINavigationController contained in a UITabBarController from AppDelegate将 UIBarButtonItem 添加到来自 AppDelegate 的 UITabBarController 中包含的 UINavigationController
【发布时间】:2015-03-15 00:05:32
【问题描述】:

编辑:解决方案:将按钮添加到 UIViewControllers 而不是 UINavigationControllers

我的应用程序的根视图控制器是一个 uitabbarcontroller,它包含一个由 5 个导航控制器组成的数组,全部在应用程序委托中初始化。 一切正常,但我只有一个问题:我无法在应用程序委托的 tabbarcontroller 中包含的控制器的导航栏中添加任何按钮。我可以设置他们的导航栏的标题、他们的导航栏的背景等,但是当我在他们的导航栏中添加一个按钮时,我没有错误但按钮没有显示。

有人知道原因吗?禁止这样做吗?

精度 1:我使用 .xib 文件作为视图,不使用任何情节提要。

精度 2:这是我用来为每个控制器创建按钮的代码:

UIBarButtonItem *myBarBtn = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"icon-chrono"] style:UIBarButtonItemStylePlain target:nil action:nil];

[ret.navigationItem setRightBarButtonItem:myBarBtn animated:YES];

精度 3:当我在每个导航控制器 viewDidLoad 方法中复制这段代码时,它可以工作

编辑:不是图片的问题,当我使用initWithTitle方法创建UIBarButtonItem时问题是一样的

【问题讨论】:

  • 您确定您的项目包含名为“icon-chrono”的图像吗?我在我的一个项目中尝试了相同的代码,它运行良好。我唯一的猜测是该图像可能不会添加到项目中。
  • 您好,感谢您的回复。是的,我确定此图像存在,我会检查两次,当我从控制器的 viewDidLoad 方法执行此代码时,此图像已正确加载。
  • 我找到了另一种方法(我创建了一个 UINavigationController 扩展,它创建导航栏按钮并在我的控制器 viewDidLoad 方法中调用它)所以我没有被阻止,但我真的很想了解这里发生了什么。我感谢这是 Xcode 的限制,但如果它对你有用,那就奇怪了。不明白我错在哪里......

标签: objective-c ios7 uinavigationcontroller uitabbarcontroller


【解决方案1】:

好的,我刚刚发现了问题......

我的 UITabController 包含一个由 5 个 UINavigationController 组成的数组,每个都包含一个 UIViewController 作为根视图控制器。 我试图在 UINavigationControllers 而不是 UIViewControllers 上添加按钮...如果我直接在 UIViewControllers 中添加按钮,它就可以工作了!

【讨论】:

    【解决方案2】:

    在图片名称后面添加 .png.jpg 可能会对您有所帮助。

    像这样。

     UIBarButtonItem *myBarBtn = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"icon-chrono.png"] style:UIBarButtonItemStylePlain target:nil action:nil];
    
        [ret.navigationItem setRightBarButtonItem:myBarBtn animated:YES];
    

    点击你的项目 -> 构建阶段 -> 复制包资源,看看那里,你的图像是否存在。如果没有,则使用 "+" 按钮添加它。见下图。

    【讨论】:

    • 我刚刚尝试了两种解决方案,但都不起作用。这不是图像问题,也没有显示带有标题的按钮。然而,当我签入应用程序委托执行导航控制器的导航项时,右侧按钮存在且非零。但是当视图控制器被加载时,导航项是 nil
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多