2016-06-07 3 views
1

У меня есть экран с навигационной панелью, кнопка «назад» по умолчанию размещена с помощью navigationItem раскадровки. Я хочу, чтобы во всплывающем окне отображался контроллер на кнопке «Назад», основанный на условии. Кнопка «Назад» используется по умолчанию перед добавлением события. Пожалуйста, предложите решение этой проблемы. enter image description hereДобавить предупреждение на кнопку «Назад» без заголовка UINavigationBar iOS

+1

Возможный дубликат [Выполнить действие, когда назад бар кнопка нажата UINavigationController] (http://stackoverflow.com/questions/27713747/execute-action-when-back-bar-button -of-uinavigationcontroller-is-press) –

ответ

0

Если вы установите tintColor Of Панель навигации, добавить пользовательскую кнопку назад изображение без заголовка, Оттенок цвета будет отражать цвет изображения. Пожалуйста, следуйте этой ссылке на apple apple.

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/UIKitUICatalog/index.html#//apple_ref/doc/uid/TP40012857-UIView-SW7

UINavigationItem *navItem = [[UINavigationItem alloc] init]; navBar.tintColor = self.tintColor; 

UIImage *myImage = [UIImage imageNamed:@"left_arrow.png"]; myImage = [myImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; 

UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithImage:myImage style:UIBarButtonItemStylePlain target:self action:@selector(cancelButtonFunction:)]; 
navItem.leftBarButtonItem = leftButton; 
navBar.items = @[ navItem ]; 
2

Вы должны реализовать этот метод,

-(void)willMoveToParentViewController:(UIViewController *)parent{ 

    if (parent == nil) { 

     // handle your back button's task here 
    } 
    } 

Этот метод дозвонились перед началом навигации к parentview контроллеру.

Если это не сработает в вашем случае, то вы можете использовать пользовательские обратно кнопки что-то подобное,

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(goBack:)]; 
    self.navigationItem.leftBarButtonItem=newBackButton; 
} 

-(void)goBack:(UIBarButtonItem *)sender { 

     //Handle your back button's task here and you have to call popViewcontroller your self in this case 
} 
+0

Я хочу показать предупреждение, после действия в режиме предупреждения, а затем контроллера поп-представления. –

+0

Я не хочу Назад Название, только стрелка назад. –

+0

Затем добавьте настраиваемую кнопку с четким цветом и не устанавливайте заголовок. Просто добавьте кнопку с четким цветом без рамки. поэтому кнопка панели навигации будет видна и щелкнуть мышью на пользовательской кнопке – Lion

0
UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(goBack:)]; 
self.navigationItem.leftBarButtonItem=newBackButton; 

-(void)goBack:(UIBarButtonItem *)sender { 

     UIAlertView *removeAddAlertView = [[UIAlertView alloc] initWithTitle:@"Alert!" message:@“Are you want to go Back ” delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:@"Cancel", nil]; 
     [removeAddAlertView show]; 

} 
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
     if (buttonIndex == 0) { 
      // cancel 
     }else if (buttonIndex == 1) { 
      // ok 
     } 
} 
+0

Я не хочу Назад Название, только стрелка назад. –