1

Существует множество вопросов о том, как заменить кнопку возврата по умолчанию на пользовательскую кнопку возврата, но никто из них не знает о том, как заменить пользовательскую кнопку возврата по умолчанию.Заменить пользовательскую кнопку возврата по умолчанию

У меня есть веб-представление, когда [self.webView canGoBack] == ДА, появляется пользовательская кнопка возврата. Но после того, как вы вернетесь полностью, эта пользовательская кнопка возврата все еще существует, а не по умолчанию. Есть ли что-то, что я могу сделать, чтобы заменить мою пользовательскую кнопку возврата по умолчанию, когда [self.webView canGoBack] == НЕТ?

Вот мой соответствующий код:

@interface MerchViewController() <UIWebViewDelegate> 

@property UIWebView *webView; 

@end 

@implementation MerchViewController 

- (instancetype)init 
{ 
self = [super init]; 
if (self) { 
    self.navigationItem.title = @"Merchandise"; 
} 
return self; 
} 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
UIWebView *webView = [[UIWebView alloc] init]; 
webView.scalesPageToFit = YES; 
self.view = webView; 
self.webView = webView; 
webView.delegate = self; 
[self setURL]; 

} 

- (void)updateBackButton { 

if ([self.webView canGoBack]) { 
    { 
     [self.navigationItem setHidesBackButton:YES animated:NO]; 
     //UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"backTickets"] style:UIBarButtonItemStylePlain target:self action:@selector(backWasClicked:)]; 
     UIBarButtonItem *backItem = [[UIBarButtonItem alloc] backButtonWith:@"Back" tintColor:[UIColor orangeColor] target:self andAction:@selector(backWasClicked:)]; 
     backItem.tintColor = [UIColor orangeColor]; 
     [self.navigationItem setLeftBarButtonItem:backItem animated:NO]; 
    } 
} 

else { 
    /* 
[self.navigationItem setHidesBackButton:YES animated:NO]; 
//UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"backTickets"] style:UIBarButtonItemStylePlain target:self action:@selector(backWasClicked:)]; 
UIBarButtonItem *backItem = [[UIBarButtonItem alloc] backButtonWith:@"Fan Zone" tintColor:[UIColor orangeColor] target:self andAction:@selector(openMenu:)]; 
backItem.tintColor = [UIColor orangeColor]; 
[self.navigationItem setLeftBarButtonItem:backItem animated:NO]; 
    */ 
} 


} 

- (void)webViewDidStartLoad:(UIWebView *)webView { 
[self updateBackButton]; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
[self updateBackButton]; 
[_spinner stopAnimating]; 
} 

- (void)backWasClicked:(id)sender { 
if ([self.webView canGoBack]) { 
    [self.webView goBack]; 
} 
} 

- (void)setURL 
{ 
NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.lawlorscustom.com/omaha-lancers-hockey"]]; 
NSLog(@"loadRequest: %@", req); 
[(UIWebView *)self.view loadRequest:req]; 

} 

@end 

«еще» часть в «updateBackButton» комментируется, потому что, если я не комментирую его, когда просмотр первой загрузки есть две кнопки назад перекрывающая ,

ответ

1

После борьбы за какое-то время, ответ должен был сделать:

[self.navigationItem setHidesBackButton:NO animated:NO]; 

self.navigationItem.leftBarButtonItem = self.navigationItem.backBarButtonItem; 
Смежные вопросы