2011-04-07 30 views
0

我創建了一個UINavigationController,UINavigationBar的UIBarButtonItem全部在代碼中的正確位置,沒有IB/.xib文件。如何在完全使用代碼創建的視圖控制器中連接事件,無需Interface Builder?

作爲來自C#的XCode(v4)的新手,我想了解如何捕獲和處理導航欄中按鈕的單擊事件。

在C#中會有一個點擊事件,您將覆蓋哪個包含事件處理代碼。

我發現了一些使用IB將UI對象(如按鈕)連接到視圖控制器中的方法的示例。但是,我找不到任何有關如何僅通過代碼實現的示例。

任何引用的見解讚賞。

回答

1

在您的viewDidLoad方法中使用以下initialisers之一創建的UIBarButtonItem ...

– initWithImage:style:target:action: 
– initWithTitle:style:target:action: 

最後兩個參數的initialisers允許你指定的對象調用操作時發生,並且在該對象上的方法來調用,即

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(methodForItem:)]; 

Apple's UIBarButtonItem Class Reference

1

您需要在右側欄按鈕項目上使用Target/Action。所以在你實例化你的UIBarButtonItem之後,你會做這樣的事情。

[barButtonItem addTarget:self action:@selector(methodThatShouldBeCalled:) forControlEvents:UIControlEventTouchUpInside];

+0

除非我錯了,你在這裏提出的建議將適用於UIButton,而不是UIBarButtonItem。 – double07 2011-05-22 17:42:11

相關問題