2015-07-18 3 views
-1

Я начинаю программировать xcode. Я пытаюсь сделать действие, когда я нажимаю кнопку из представления A, кнопка просмотра B будет скрыта. Я уже знаю, что могу использовать button.hidden = true; для контроллера представления, но я не знаю, как управлять кнопкой с другого вида.Как скрыть кнопку при нажатии с другого вида

Благодаря

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

Вы хотите скрыть кнопку с другого контроллера? –

+1

В Swift нет необходимости в точках с запятой ';' –

+0

Установить скрытый из экземпляра вида B. . <Ваша кнопка в виде B> .hidden = true –

ответ

0

Прежде, создать пользовательский вид с помощью кнопки, кнопки действия и протокола, как:

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 
    } 
    } 
} 
+0

Исходный код: https: // github.com/longpham2310/ExampleSwift –

+0

Эй, я хочу скрыть кнопку CustomView из класса UIViewController? –

+0

@ami rt Я не знаю, что вы хотите здесь? –

0

кнопка должна быть свойством вида (или контроллера представления). Вызов будет выглядеть следующим образом:

view.button.hidden = true 
+0

it показывает 'testview.type' не имеет члена с именем 'setting' ' , но спасибо в любом случае – ray

+0

Вы должны определить Button как глобальную переменную или свойство вашего текущего класса или как свойство вашего класса вида для доступа к нему – Lennet

+0

Как я могу определить кнопку в качестве глобальной переменной в swift? THANKS – ray

Смежные вопросы