Ios UIToolBar按钮项目未使用Swift显示
我没有使用Interface Builder制作一个应用程序,所以我用代码创建所有东西 我有一个嵌入在导航控制器中的视图控制器。我知道导航控制器有一个工具栏属性,我需要做的就是将布尔值设置为false以取消隐藏它。我的代码如下所示(它是在viewDidLoad中调用的函数): 以下是我为视图控制器声明这些属性的位置和方式:Ios UIToolBar按钮项目未使用Swift显示,ios,xcode,swift,uibarbuttonitem,uitoolbar,Ios,Xcode,Swift,Uibarbuttonitem,Uitoolbar,我没有使用Interface Builder制作一个应用程序,所以我用代码创建所有东西 我有一个嵌入在导航控制器中的视图控制器。我知道导航控制器有一个工具栏属性,我需要做的就是将布尔值设置为false以取消隐藏它。我的代码如下所示(它是在viewDidLoad中调用的函数): 以下是我为视图控制器声明这些属性的位置和方式: private var addImageButton : UIBarButtonItem = { let button = UIFactory.createBarBu
private var addImageButton : UIBarButtonItem = {
let button = UIFactory.createBarButtonItem(nil, imageNamed: "plus button", style: .Plain, target: ImagesCollectionViewController.self, selector: #selector(ImagesCollectionViewController.addImage))
return button
}()
private var exportImageButton : UIBarButtonItem = {
let button = UIFactory.createBarButtonItem(nil, imageNamed: "export button", style: .Plain, target: ImagesCollectionViewController.self, selector: #selector(ImagesCollectionViewController.exportImagePressed))
return button
}()
private var deleteImageButton : UIBarButtonItem = {
let button = UIFactory.createBarButtonItem(nil, imageNamed: "trash button", style: .Plain, target: ImagesCollectionViewController.self, selector: #selector(ImagesCollectionViewController.deleteImagePressed))
return button
}()
private var toolItems : [UIBarButtonItem] = []
下面是my UIFactory类的函数,它简单地处理在视图控制器之外创建这些UI项的麻烦
class func createBarButtonItem(title: String?, imageNamed : String?, style : UIBarButtonItemStyle?, target : AnyObject?, selector : Selector?) -> UIBarButtonItem{
let button = UIBarButtonItem()
if let theTitle = title {
button.title = theTitle
}
if let theImageName = imageNamed {
button.image = UIImage(named: theImageName)
}
if let theStyle = style{
button.style = theStyle
}
if let theTarget = target {
button.target = theTarget
}
if let theSelector = selector {
button.action = theSelector
}
return button
}
在模拟器中运行此代码后,我看到的是(没有工具栏项目!另外,请注意,导航栏中有一个bar button项目,我在代码中添加的很好)
求求你,有人帮帮我。我被困在这样一个荒谬的步骤上,没有它我无法继续我的应用程序。只需删除
navigationController?.toolbar.setItems(toolItems, animated: false)
然后把这行代码
self.toolbarItems = [toolItems]
我变了
导航控制器!。toolbar.setItems(toolItems,动画:true)
到
toolbarItems=工具项
为我工作。你在哪里调用setupToolbar?在ViewDidLoad中调用这可能太早了。如果
navigationController?
仍然为零,那么您的代码将不会有任何效果。是零吗?如果是这样,请尝试将调用移动到setupToolbar
到viewwillbeen
或类似位置。难以置信。成功了。谢谢toolItems需要初始化吗?这对我很有用,我想知道为什么“self.navigationController?.toolbar.items=items”和“self.navigationController?.setToolbarItems(items,动画:false)”不起作用
self.toolbarItems = [toolItems]