2014-02-12 5 views
0

Я надеюсь кто-то может помочь мне понять это ... Я начинающий программист Xcode/Objective-C. Я работаю над приложением, которое является продолжением последнего семестра.Как выполнить UIBarButton пользовательскую функцию?

1: Так что я создал кнопку, и мне нужно, чтобы выполнить эту пользовательскую функцию:

- (void)cancelTapped { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Notification" message:@"Do you want to delete everything and go back to product selection?" delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes"]; 
    [alert setTag:1]; 
    [alert show]; 
} 

Как/где я кладу эту функцию? Это в свойствах кнопки? Или я могу написать это в пользовательском классе/контроллере и связать его с ним?

2: Как заставить его слушать начеку, чтобы вернуться на: - alertView:didDismissWithButtonIndex:

3: Оттуда, как бы я хотел бы написать логику, чтобы скрыть страницу и поп мнение?

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { 
    if (alertView.tag == 1 && buttonIndex == 1) { 
     // Delete data and return to lobby 
     [self.navigationController popViewControllerAnimated:YES]; 
    } 
} 
+0

Как вы создаете ваш бар кнопка пункта? Вы пытались добавить этот код в свой контроллер? – Wain

+0

IS это для задний (левыйBarButton) item ..? –

+0

@Wain Я пошел в раскадровку и создал новый UIBarButton в редакторе. Kumar, да. – Camerz007

ответ

1

Вам понадобится пользовательский UIViewController для размещения логики для взаимодействия с вашей кнопкой и предупреждением. Я предполагаю, что вы знаете, как это сделать.

После этого, если у вас есть ссылка на вашу кнопку собственность в контроллере представления, можно программно добавить цель вашей кнопке и передать селектор cancelTapped в качестве параметра:

[myButton addTarget:self action:@selector(cancelTapped) forControlEvents:UIControlEventTouchUpInside]; 

В качестве альтернативы вы можете контролировать -выразитесь от кнопки в вашей раскадровке до файла заголовка вашего пользовательского UIViewController и определите IBAction. Это создаст пустой метод cancelTapped в вашей реализации, который вы могли бы добавить в свою логику.

Что касается прослушивания сообщений UIAlertView, вам нужно сделать свой пользовательский UIViewController делегатом из UIAlertView, передав «я» в качестве делегируют в следующем заявлении:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Notification" message:@"My Message" delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes"]; 

Ваш CustomViewController также должен быть объявлен как UIAlertViewDelegate.

CustomViewController.h

@interface CustomViewController : UIViewController<UIAlertViewDelegate> 
@end 

Надеется, что это помогает!

0

По использованию VIewWillDisappear метода к detect the press of The back button из NavigationItem:

-(void) viewWillDisappear:(BOOL)animated { 
    if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) { 
     // Navigation button was pressed. Do some stuff 
     [self cancelTapped]; 

    } 
    [super viewWillDisappear:animated]; 
} 
- (void)cancelTapped { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Notification" message:@"Do you want to delete everything and go back to product selection?" delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes"]; 
    [alert setTag:1]; 
    [alert show]; 
} 

Для получения дополнительной информации & & также на заказ UIBArButtonItem Check Here

Смежные вопросы