繁体   English   中英

从另一个视图单击时如何隐藏按钮

[英]how to hide button when clicked from another view

我是xcode编程的初学者。 我正在尝试执行一个操作,当我从A视图单击按钮时,B视图的按钮将被隐藏。 我已经知道我可以使用button.hidden = true; 对于自视图控制器,但我不知道如何从其他视图控制按钮。

谢谢

@IBAction func TestBut(sender: UIButton) {
    setting.hidden = false
}

该按钮必须是view(或view controller)的属性。 呼叫看起来像这样:

view.button.hidden = true

之前,您使用以下按钮,按钮动作和协议创建自定义视图:

protocol CustomViewDelegate {
    func buttonPressed (sender: AnyObject)
}

class CustomView: UIView {

    @IBOutlet weak var button: UIButton!
    var delegate: CustomViewDelegate!

    override func awakeFromNib() {
        super.awakeFromNib()
    }

   class func loadViewFromXib() -> CustomView {
        return NSBundle.mainBundle().loadNibNamed("CustomView", owner: self, options: nil)[0] as! CustomView
    }

   @IBAction func buttonPressed(sender: AnyObject) {
        self.delegate.buttonPressed(sender)
  }
}

在您的ViewController中。

class ViewController: UIViewController, CustomViewDelegate {

var firstView: CustomView?
var secondView: CustomView?
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    self.firstView = CustomView.loadViewFromXib()
    self.secondView = CustomView.loadViewFromXib()

    firstView!.frame = CGRectMake(0, 0, 100, 100)
    secondView!.frame = CGRectMake(0, 200, 100, 100)

    firstView!.delegate = self
    secondView!.delegate = self

    self.view.addSubview(firstView!)
    self.view.addSubview(secondView!)
}

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

func buttonPressed(sender: AnyObject) {
    if (sender as! UIButton) == self.firstView!.button {
        self.secondView?.button.hidden = true
    }else {
        self.firstView?.button.hidden = true
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM