2012-03-28 84 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]; 

    } 

。希望这有助于...

相关问题