【问题标题】:RightBarButtonItem disappears when view appears again当视图再次出现时 RightBarButtonItem 消失
【发布时间】:2016-11-28 11:06:22
【问题描述】:

我的问题是我的导航项中的 RightBarButtonItem 在视图第二次出现后消失了。视图第一次加载时正常显示,但第二次完全消失。

按钮在 viewWillAppear 中被初始化:

UIBarButtonItem *optionsButton = [[UIBarButtonItem alloc] initWithCustomView:roundedButton];
self.navigationItem.rightBarButtonItem = optionsButton;

我记得叫 super

我只再触​​摸一次导航控制器:

http://pastebin.com/udviCe0Y

有什么想法会发生这种情况吗?

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

    您可以使用类别在导航栏上添加自定义图像。通过在导航栏上创建一个类别来覆盖 drawRect 方法。在谷歌上搜索你会找到它。如果不让我知道。我会为你做的。

    【讨论】:

      【解决方案2】:

      我一直在 viewDidLoad 中添加条形按钮项,从未遇到过像您这样的问题。尝试将条形按钮添加到 viewDidLoad。

      【讨论】:

      • Jamihash,似乎从我上面发布的代码中,我通过添加一个新的子视图来设置栏的背景,背景超出了按钮的顶部......知道我可以如何设置栏的自定义背景以不同的方式而不超出按钮的顶部?
      【解决方案3】:

      在 ViewWillAppear 方法中实现你的 BarButton,这样每次当你的 View 出现时,你都会找到 bar 按钮。 这将解决您的问题。

      - (void)viewWillAppear:(BOOL)animated
      

      {

      }

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题。

        如果您检查导航栏的子视图,您会看到 barButtons 已被删除,您必须创建新的。

        我之前尝试使用按钮存储数组,并将它们添加到 viewWillAppear 但它不起作用,所以我继续在 viewWillAppear 中创建新的。

        【讨论】:

          【解决方案5】:

          在 viewWillAppear 中试试这个:
          UIBarButtonItem *optionsButton = [[UIBarButtonItem alloc] initWithCustomView:roundedButton]; self.navigationItem.rightBarButtonItem = optionsButton; self.navigationItem.rightBarButtonItem = nil; self.navigationItem.rightBarButtonItem = optionsButton;

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-10-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多