замена изображения кнопки «Назад» на панели навигации приводит к появлению двух кнопок «Назад» - PullRequest
0 голосов
/ 21 декабря 2018

IOS 11.x Я пытаюсь заменить изображение кнопки «Назад» на панели навигации, чтобы использовать пользовательскую стрелку назад.Следующий код добавляет стрелку «назад», но не заменяет стрелку «<» по умолчанию, и теперь я вижу два изображения для одной кнопки «Назад». </p>

Вот мой код в контроллере представления, который ведет к следующему представлениюс двумя кнопками возврата.

UIBarButtonItem *backButtonItemWithImage = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"backButton"] style:UIBarButtonItemStyleDone target:nil action:nil];
self.navigationItem.backBarButtonItem = backButtonItemWithImage;

Если я прокомментирую этот код, тогда кнопка возврата станет '<Назад' </p>

navigation bar with one back button but two images

Пожалуйста, совет, как это исправить.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Я нашел решение из другого поста SO здесь - , как установить изображение для кнопки возврата по умолчанию на навигационной панели

Автор этого сообщения @Badal Shah.

в приложении Delegate.m замените изображение кнопки «Назад» один раз, и теперь во всем приложении кнопка «Назад» будет использовать ваше пользовательское изображение вместо значения по умолчанию '<' </p>

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [self customBackButtonForNavigationBar];
}

-(void)customBackButtonForNavigationBar {
        //int imageSize = 20;
    UIImage *myImage = [UIImage imageNamed:@"backButton"]; //set your backbutton imagename
    UIImage *backButtonImage = [myImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
        // now use the new backButtomImage
    [[UINavigationBar appearance] setBackIndicatorImage:backButtonImage];
    [[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:backButtonImage];

    [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-400.f, 0)
                                                         forBarMetrics:UIBarMetricsDefault];

}

Теперь, если вы хотите удалить заголовокдля кнопки «назад» вы можете сделать обычный код:

UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButtonItem;

Это позволит убедиться, что на кнопке «Назад» есть только то изображение, которое вы установили, и нет заголовка.

0 голосов
/ 21 декабря 2018
self.navigationController.navigationBar.backIndicatorImage = [UIImage imageNamed:@"Image"];
self.navigationController.navigationBar.backIndicatorTransitionMaskImage = [UIImage imageNamed:@"Image"];
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...