Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIBarButtonim with customView(UISwitch)在创建工具栏后不久就会消失(尽管这是一段非常简单的代码!)_Ios_Swift_Uibarbuttonitem_Toolbar_Uiswitch - Fatal编程技术网

Ios UIBarButtonim with customView(UISwitch)在创建工具栏后不久就会消失(尽管这是一段非常简单的代码!)

Ios UIBarButtonim with customView(UISwitch)在创建工具栏后不久就会消失(尽管这是一段非常简单的代码!),ios,swift,uibarbuttonitem,toolbar,uiswitch,Ios,Swift,Uibarbuttonitem,Toolbar,Uiswitch,我尝试创建一个带有UIBarButtonim和customView UISwitch的工具栏。这是由我的函数createtoolbar完成的 在viewDidLoad上,工具栏已正确创建 但是:通过按按钮创建工具栏,UISwitch将在大约0.1秒后消失 希望有人能帮助我 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad()

我尝试创建一个带有UIBarButtonim和customView UISwitch的工具栏。这是由我的函数createtoolbar完成的

在viewDidLoad上,工具栏已正确创建

但是:通过按按钮创建工具栏,UISwitch将在大约0.1秒后消失

希望有人能帮助我

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    createtoolbar()
}


@IBOutlet var bottomBar: UIToolbar!
let alarmSwitch = UISwitch()

func createtoolbar() {
    alarmSwitch.on = true
    let alarmSwitchBarButton = UIBarButtonItem(customView: alarmSwitch)
    var toolbarbuttons = [alarmSwitchBarButton]
    bottomBar.setItems(toolbarbuttons, animated: true)
}

@IBAction func createtoolbarButtonPressed(sender: AnyObject) {
    createtoolbar()
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}不清楚你想做什么。您正在代码中创建条形按钮项,但添加了一个作为IBOutlet的开关?你不能这样做-如果你的开关实际上是一个IBOutlet,那么它将已经是其他视图的子视图,你不能在你的工具栏按钮中使用它。如果它不是一个不应该是的IBOutlet,那么您需要在代码中创建开关。

谢谢您的回答。是的,在我上面的代码中,开关是一个IBOutlet。所以我在代码中创建了开关。问题:当我在viewDidLoad中调用createtoolbarplay时,一切正常。但是:当我调用createtoolbarplay按钮时,我又遇到了同样的问题。。。希望,你能帮我吗?@JustSmile,编辑你的问题以显示你现在在做什么。刚刚更新了我的问题:1。我现在以编程方式添加了UISwitch。2.这个问题仍然是最新的。3.希望得到更多帮助。@JustSmile,我将你的代码复制并粘贴到一个新的应用程序中,效果很好,所以我不知道你为什么仍然有问题。如果你能把你的项目发布到我可以下载的地方,我会看看。那么,有什么问题吗?我在运行你的应用程序时看到开关。当您触摸按钮时,按钮是否消失?如果已经通过调用viewDidLoad中的方法创建了按钮,那么为什么还要使用该按钮方法呢?我怀疑问题在于开关最初是从viewDidLoad添加到工具栏的,然后您尝试将同一开关插入到新的条形按钮项中,即使它已经是您创建的第一个条形按钮项的子视图。您应该只创建一次此栏按钮项。