2012-03-28 63 views
0

我有一個UIButton,它位於UINavigationBar's rightBarButtonItem之上。隱藏UIButton。所以在視圖中只有UINavigationBar's rightBarButtonItem可見。點擊rightbarbuttonitem,我想觸發隱藏的UIButton的動作。可能嗎。如果是這樣,怎麼樣?如何在UIBarButtonItem的動作中觸發隱藏的UIButton事件

編輯:有沒有辦法做到這一點,而不使用選擇器。有沒有像我可以在UIButButtonItem的點擊觸發UIButton動作那樣的方式,就像動作一樣:UIButton.action

回答

0

當觸摸UIButton時,可以調用在觸摸rightBarButtonItem時調用的方法。

-(IBAction)rightBarButtonTrigger:(id)sender { 
    NSLog(@"rightBarButtonTrigger"); 
    [self uiButtonTrigger:sender]; 
} 

-(IBAction)uiButtonTrigger:(id)sender { 
    NSLog(@"uiButtonTrigger"); 
} 
+0

我正在以編程方式創建UIButton – 2012-03-28 04:17:20

+0

在這種情況下,您可以使用相同的代碼。你有沒有想要使用選擇器的某些原因? UIButton繼承UIControl的動作。你可以在創建UIButton的時候設置一個動作或者使用UIControl的addTarget:action:forControlEvents:方法和動作需要一個選擇器。 – Nate 2012-03-28 04:33:45

+0

有沒有辦法,我可以將UIBarButtonItem操作設置爲nil,而是以編程方式觸發UIButton操作。 – 2012-03-28 04:49:48

0

你可以寫你的兩個按鈕rightBarButtonItemUIButton的常用方法。所以他們會在點擊事件中觸發相同的方法。

1

請嘗試下面的代碼來觸發UIBarButtonItem的操作。但你有tu在這裏使用選擇器!

- (void) viewDidLoad 
    { 
     // change the back button and add an event handler 
     self.navigationItem.leftBarButtonItem = 
     [[UIBarButtonItem alloc] initWithTitle:@"Pages" 
             style:UIBarButtonItemStyleBordered 
             target:self 
             action:@selector(handleBack:)]; 
    } 

    - (void) handleBack:(id)sender 
    { 
     // do your custom handler code here 

     // make sure you do this! 
     // trigger an hidden button 
[itsHiddenButton sendActionsForControlEvents: UIControlEventTouchUpInside]; 

    } 

。希望這有助於...

相關問題