2012-03-28 2 views
0

UINavigationBar's rightBarButtonItem 위에 배치 된 UIButton이 있습니다. UIButton이 숨겨져 있습니다. 따라서보기에서는 UINavigationBar's rightBarButtonItem 만 볼 수 있습니다. rightbarbuttonitem을 클릭하면 숨겨진 UIButton의 동작을 실행하고 싶습니다. 가능한가? 그렇다면 어떻게?UIBarButtonItem 동작에서 숨겨진 UIButton의 이벤트를 트리거하는 방법

편집 : 선택기를 사용하지 않고이를 수행 할 수있는 방법이 있습니까? 액션과 같은 UIBarButtonItem 클릭시 UIButton 액션을 트리거 할 수있는 방법이 있습니까? UIButton.action

답변

0

UButton을 터치하면 rightBarButtonItem을 터치 할 때 호출되는 메서드가 호출 될 수 있습니다.

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

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

프로그래밍 방식으로 UIButton을 만들고 있는데 –

+0

이 경우 동일한 코드를 사용할 수 있습니다. 선택기를 사용하고 싶지 않은 이유가 있습니까? UIButton은 UIControl로부터 액션을 상속받습니다. UIButton을 만들 때 또는 UIControl의 addTarget : action : forControlEvents : method를 사용할 때 액션을 설정하고 action은 selector를 취합니다. – Nate

+0

UIBarButtonItem 동작을 nil로 설정하고 대신 프로그래밍 방식으로 UIButton 동작을 트리거 할 수있는 방법이 있습니까? –

0

당신은 당신의 두 버튼 rightBarButtonItemUIButton위한 일반적인 방법을 쓸 수 있습니다. 따라서 클릭 이벤트에서 동일한 메소드를 실행합니다.

1

UIBarButtonItem에 대한 동작을 트리거하려면 아래 코드를 시도하십시오. 하지만 당신은 이것에 사용 선택기를 가지고!

- (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]; 

    } 

. 희망이 .. ..

관련 문제