【问题标题】:Swift Show UIbuttonSwift Show UIbutton
【发布时间】:2014-11-09 17:10:03
【问题描述】:

我是 swift 和编程的新手。我的storyBoard 中有一个UIPickerViewUIbutton(默认按钮是不可见的),当我在UIPickerView (PickerView.selectedRowInComponent(0) == 1) 中更改行以及按下MyButton 时,我想显示myButton做点什么。这是我的代码:MyButtonPickerView

如何显示myButton

@IBAction func myButton(sender: UIButton) {
        println("Button was clicked", sender)
        //here i will do something

    }


func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
            if  PIckerView.selectedRowInComponent(0) == 1 {
            //how to set UIButton property visible, here ???

        }

【问题讨论】:

    标签: ios swift uibutton


    【解决方案1】:

    试试这个:

    myButton.hidden = false
    

    【讨论】:

    • myButton.hidden = false -- 不行,myButton(我必须在这里输入什么??)
    • /Users/bdaler/Documents/Coding/apple/tarjuma/tarjuma/ViewController.swift:254:18: '(UIButton) -> ()' 没有名为'hidden'的成员
    • 你需要:@IBOutlet weak var myButton: UIButton!首先
    • 如果我将 myButton 连接为 IBOutlet weak var myButton: UIButton!但我怎么能做这样的事情? " @IBAction func myButton(sender: UIButton) { println("Button was clicked", sender) //这里我会做点什么 }"
    【解决方案2】:

    要在代码中访问您的按钮,您需要创建一个IBOutlet:在 InterfaceBuilder 中,从按钮按住 ctrl 并拖动到您的类文件,然后在弹出菜单中选择 outlet。给该插座起一个描述性的名称,即myButton。还要给你的@IBAction 一个描述性的名字,而不是myButton

    所以你的班级看起来像这样:

    @IBOutlet weak var myButton: UIButton!
    
    @IBAction func myButtonClick(sender: UIButton) {
        println("Button was clicked", sender)
        // here i will do something
    }
    
    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        if  PIckerView.selectedRowInComponent(0) == 1 {
            myButton.hidden = false
        }
    }
    

    并且不要忘记在 InterfaceBuilder 中相应地分配您的自定义类。

    【讨论】:

    • 这将是一个按钮?
    • 对不起,我不明白你的意思?
    • 谢谢。但是当 selectedRowInComponent 等于 1 时,应用程序崩溃:致命错误:在展开 Optional 值时意外发现 nil。 (
    • 请更新您的问题以包含更多课程代码,尤其是课程标题​​。你是如何创建@IBOutlet@IBAction 的?您的自定义类是否在 InterfaceBuilder 的身份检查器中设置为 viewController 的类?
    • 您的代码看起来不错。我建议删除@IBOutlet@IBAction 并在InterfaceBuilder 中重新创建连接。
    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多