【问题标题】:UIToolbar xib xcodeUIToolbar xib xcode
【发布时间】:2014-06-02 23:57:04
【问题描述】:

我正在尝试创建一个可以添加到多个视图的自定义 UIToolbar,我不想以编程方式执行此操作,因此我使用 xib 来设计 UIToolbar。我需要将它包装在 UIView 和视图控制器中吗? ViewController.m 是根视图控制器。这只是一个简单的项目,我只是在尝试一些东西

【问题讨论】:

  • 你有没有得到这个答案?

标签: ios objective-c xcode uitoolbar


【解决方案1】:

你可以这样做:

  1. 创建ToolBar.xib文件,删除UIView,添加UIToolbar
  2. 创建 ToolBar.swift 文件,添加代码,如图所示,然后制作 outlet
  3. 对于“身份和类型”中的 .xib 输入名称“ToolBar.swift”

  1. 在您的根视图控制器中,将此代码放入 ViewDidLoad:

    let toolBar = UINib(nibName: "ToolBar", bundle: nil).instantiateWithOwner(nil, options: nil).first as! ToolBar
    toolBar.hidden = true
    self.navigationController!.view.addSubview(toolBar)
    self.navigationController!.toolbarItems = toolBar.items
    
  2. 在所有视图控制器中放入 ViewDidLoad:

    self.toolbarItems = self.navigationController!.toolbarItems
    
  3. 工具栏.swift:

    import UIKit
    
    class ToolBar: UIToolbar {
    
        override init(frame: CGRect) {
            super.init(frame: frame)
        }
    
        required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
        }
    
        @IBAction func item1Pressed(sender: AnyObject) {
            print("item 1 pressed")
        }
    
        @IBAction func item2Pressed(sender: AnyObject) {
            print("item 2 pressed")
        }
    
        @IBAction func item3Pressed(sender: AnyObject) {
            print("item 3 pressed")
        }
    
        @IBAction func item4Pressed(sender: AnyObject) {
            print("item 4 pressed")
        }
    
    }
    

【讨论】:

  • 4 点错误。去掉第二行(会隐藏工具栏),第三行是错误的,因为它会在navigationController的顶部添加视图,正确的是:self.navigationController!.toolbar.addSubview(toolBar)。四行没用。
猜你喜欢
  • 2017-04-15
  • 2012-06-23
  • 2012-05-14
  • 1970-01-01
  • 2017-01-13
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
相关资源
最近更新 更多