2012-10-12 83 views
0

例如,我在所有視圖控制器中有兩個相同的按鈕。這些按鈕的反應在所有視圖控制器中都是相同的。我如何使這個功能在普通的類中使用,並在每個視圖控制器中使用這個類或對象?如何委託功能或設計到其他UIViewController

+0

並且我的圖形在繼承的視圖控制器中是否正確顯示? (如果圖形是在界面生成器中創建的) – George

+0

是對應於它所觸發的相同視圖控制器的反應。 – AppleDelegate

+0

是的,它看起來是正確的,但如果2個ViewController做不同的事情,也許你想照顧另一個類中的動作。 –

回答

1

當您添加幾個目標/行動按鈕,你可以將目標設定爲一個特定的類:

[button1 addTarget:myOtherClassInstance action:@selector(doSomethingAction:) forControlEvents:UIControlEventTouchUpInside]; 
[button2 addTarget:myOtherClassInstance action:@selector(doSomethingAction2:) forControlEvents:UIControlEventTouchUpInside]; 

,並在myOtherClass.m

- (void)doSomethingAction:(id)sender { 
//Do something and maybe check the sender 
} 

- (void)doSomethingAction2:(id)sender { 
//Do some other thing and maybe check the sender 
} 
+0

謝謝,但我如何在普通課堂上製作圖形? – George

+0

在這種情況下,您應該使用2個按鈕爲組件創建單獨的VC(我們稱它爲buttonsVC)。在主VC中,您引用buttonsVC和mainVC viewDidLoad,[mainVC.view addSubView:buttonsVC.view]。這是整合的第一步,查看本文以獲取更多有關VC生命週期和VC容器的信息:http://subjective-objective-c.blogspot.ch/2011/08/writing-high-quality-view -controller.html –

+0

我可以在一個View Controller上有幾個VC嗎? – George

1

你可以把動作方法,並將按鈕點擊事件鏈接到這種方法是這樣的

 [yourButton addTarget:yourDelegate action:@selector(yourmethod:) forControlEvents:UIControlEventTouchUpInside];