2014-12-03 44 views
0

有沒有什麼辦法可以使它在按下UIButton時,它只是在init行爲的一行代碼中添加子視圖。無需調用@selector方法,然後調用該方法,該方法添加一個子視圖。直接從UIButton動作添加子視圖,無需調用方法

例如我嘗試以下兩種嘗試:

[theButton addTarget:self.view action:@selector(addSubview:theView) forControlEvents:UIControlEventTouchUpInside];

[theButton addTarget:self.view action:@selector(addSubview:) withObjects:theView forControlEvents:UIControlEventTouchUpInside];

但都失敗了。

----

是我調用一個方法然後添加視圖唯一的選擇,即

[theButton addTarget:self action:@selector(addTheSubview) forControlEvents:UIControlEventTouchUpInside]; 


-(void)addTheSubview { 
    [self.view addSubview:theSubview]; 
} 

也許有一種方法,通過使用語句塊中沒有方法做到這一點UIButton的代碼是addTarget? (我對塊語句知之甚少)。

回答

1

你問:

有沒有什麼辦法可以使它所以當按下一個UIButton它增加了一個 子視圖正好在一行代碼是init的動作。沒有 不得不調用@selector方法,然後調用該方法,並且該方法添加子視圖。

總之,沒有。

你是「tilting at windmills」。

您需要按鈕來調用IBAction方法,該方法依次運行幾行顯示視圖的代碼。關於你能做的最好的事情是安裝你的表單,但隱藏它,然後在你的IBAction中,你可以使用一行代碼來設置view.hidden = NO,但你仍然需要調用一個實際的IBAction方法。

一個按鈕只能調用一個不帶參數的方法,將按鈕(sender)作爲參數,或者將觸發它的按鈕和UIEvent作爲2個參數。您不能讓按鈕的操作將某些任意視圖作爲參數。它不這樣工作。

相關問題