Ios UIBarButtonim with customView(UISwitch)在创建工具栏后不久就会消失(尽管这是一段非常简单的代码!)
我尝试创建一个带有UIBarButtonim和customView UISwitch的工具栏。这是由我的函数createtoolbar完成的 在viewDidLoad上,工具栏已正确创建 但是:通过按按钮创建工具栏,UISwitch将在大约0.1秒后消失 希望有人能帮助我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()
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添加到工具栏的,然后您尝试将同一开关插入到新的条形按钮项中,即使它已经是您创建的第一个条形按钮项的子视图。您应该只创建一次此栏按钮项。