Как скрыть кнопку панели навигации по умолчанию и добавить в нее пользовательскую кнопку? - PullRequest
0 голосов
/ 17 марта 2011

У меня есть одно приложение на основе навигации, в котором я хочу скрыть навигацию по умолчанию, которая отображается слева, и я хочу добавить свою собственную кнопку. Я написал следующий код 2.

пример кода 1:

- (void)viewDidLoad {
    appDelegate=[(FoodAppDelegate *)[UIApplication sharedApplication]delegate];
UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"Volunteers_back.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(0, 0, 86, 30)];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];        

Но при этом отображается кнопка навигации по умолчанию.

второй пример кода:

self.navigationItem.hidesBackButton=YES;
    UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithTitle:@"DontWorryAboutThis" style:UIBarButtonItemStylePlain target:self action:@selector(back:)];
    [barButton setImage:[UIImage imageNamed:@"Volunteers_back.png"]];
    [self.navigationItem setLeftBarButtonItem:barButton];

Этот отображает как кнопки по умолчанию, так и пользовательские, перекрывающие друг друга.Кто-нибудь знает, в чем здесь проблема? Или какой-нибудь пример кода для достижения этой цели?

1 Ответ

1 голос
/ 17 марта 2011

Вам не нужно прятать кнопку «назад». Если вы замените leftBarButtonItem, он должен перезаписать любую кнопку. Я использую этот код и ТОЛЬКО этот код для выполнения этого в нескольких моих приложениях.

UIBarButtonItem *btnCancel =
[[UIBarButtonItem alloc] initWithTitle: @"Cancel"
                                 style: UIBarButtonItemStylePlain
                                target: self
                                action: @selector(actionButtonCancel)];
self.navigationItem.leftBarButtonItem = btnCancel;
[btnCancel release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...