【问题标题】:Set Title to UIBarButtonItem将标题设置为 UIBarButtonItem
【发布时间】:2017-01-02 17:36:56
【问题描述】:

我有UIBarButtonItem,每当我尝试为按钮设置标题时,它都不起作用。

@IBOutlet weak var barButton: UIBarButtonItem!

override func viewDidLoad() {
    super.viewDidLoad()

     barButton.title = "AB"
}

但是,如果我尝试创建 UIBarButtonItem 的操作,然后执行 sender.setTitle() 则它可以工作。但不是viewDidLoad。当用户点击按钮时,我不想设置标题。

【问题讨论】:

  • 为此,您需要在视图加载时以编程方式创建 UIBarButton。
  • @DheerajD 嗨,您能解释一下为什么不能通过这种方式完成吗?
  • 您可以在 viewDidLoad 中更改 barButton 的标题,测试通过 Xcode 8.2 (Swift 3)。

标签: ios swift uibarbuttonitem


【解决方案1】:

更改标题或图像,然后将其退回到 navigationItem:

class AnotherViewController: UIViewController {

    @IBOutlet weak var myBarButton: UIBarButtonItem!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        let barButton = myBarButton
        barButton?.title = "Anther Title"
        navigationItem.rightBarButtonItem = barButton

    }
}

苹果文档:https://developer.apple.com/reference/uikit/uibaritem/1616412-title

您应该在将项目添加到栏之前设置此属性。默认值为 nil。

【讨论】:

    【解决方案2】:

    如果您已经有 barButton 的 IBOutlet,为什么不在故事板中设置标题?我认为这是最简单的方法,除非您有其他原因以编程方式进行。

    【讨论】:

    • 好吧,澄清一下你只能使用编程方法会很有帮助,因为你的标题只是“将标题设置为 UIBarButtonItem”
    【解决方案3】:

    当我尝试这个时,它可以工作。可能 Xcode 存在错误,请删除您的按钮和连接,然后重试。

    class ViewController: UIViewController {
    
       @IBOutlet weak var barButton: UIBarButtonItem!
       override func viewDidLoad() {
           super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
           barButton.title = "MyButton"
    }
    

    【讨论】:

      【解决方案4】:

      试试这个

      @IBOutlet weak var barButton: UIBarButtonItem! {
        didSet {
          barButton.title = "AB"
       }
      }
      

      【讨论】:

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