2013-02-20 43 views
0

我有一個正在運行的項目,現在它幾乎完成,但現在我有一個應用程序委託類中的方法,我希望這個方法應該在所有按鈕該項目。一個簡單的方法是我應該在每個按鈕偵聽器代碼中添加對方法的調用。 但是有沒有一種方法,我可以使它與Button按鈕動作「Touch up inside」集成一個方法與按鈕「觸摸裏面」的行動

+0

不要惹蘋果code..just它寫在每一個按鈕動作 – 2013-02-20 12:02:26

+0

子類UIButtton – 2013-02-20 12:04:41

+0

@NikitaP這不是一個好主意!代碼的可重用性是應該被認爲總是.. – 2013-02-20 12:40:31

回答

3

通過子類化UIButton類來覆蓋sendActionsForControlEvents。

- (void)sendActionsForControlEvents:(UIControlEvents)controlEvents { 
    if(controlEvents == UIControlEventTouchUpInside) { 
     //call your method. 
    } 
    [super sendActionsForControlEvents:controlEvents]; 
} 

您可能需要通過所有UIButtons並改變其類,你的子類。我還沒有嘗試過,但我認爲你可以放棄它。

0

您可以使用擴展

extension UIButton 
{ 
    override open func sendActions(for controlEvents:UIControlEvents) 
    { 
     if controlEvents == .touchUpInside 
     { 
      // Type your custom execution here 
     } 
    } 
} 

這將調用每一個事件上的按鈕

相關問題