Пользовательское изображение на панели навигации, скрывающее пользовательские кнопки панели навигации - PullRequest
0 голосов
/ 29 декабря 2011

Прежде всего, я объясняю, что я делаю. Я создал приложение на основе навигации. Я должен добавить пользовательское изображение на панели навигации. Я добавил изображение с помощью -

[self.navigationController.navigationBar insertSubview:image atIndex:0];

После этого я добавил две пользовательские кнопки влево и вправо на панель навигации того же представления. У меня есть другое представление, и в этом представлении я также добавил две настраиваемые кнопки слева и справа на панель навигации. Пока все в порядке, но при переходе ко второму виду мои пользовательские кнопки, которые я добавляю в контроллер навигации на viewwillappear, не отображаются. Я использовал этот код для добавления пользовательских кнопок на панель навигации -

UIBarButtonItem *customHome = [[UIBarButtonItem alloc] initWithCustomView: buttonHome];
[self.navigationController.navigationItem setLeftBarButtonItem:customHome];

Пожалуйста, предложите, что в этом плохого. (

Ответы [ 2 ]

0 голосов
/ 29 декабря 2011

Если вы ввели UIViewController в UINavigationController, то в viewDidLoad контроллера просмотра вы можете, например, сделать заголовок UISearchBar (который вы перетащили в UIViewController в Xcode IB) и поместите 2 кнопки справа следующим образом:

    UIBarButtonItem *componentsButton = [[UIBarButtonItem alloc] initWithTitle:@"components" style:UIBarButtonItemStylePlain target:self action:@selector(componentsButtonTapped:)];
    UIBarButtonItem *settingsButton = [[UIBarButtonItem alloc] initWithTitle:@"settings" style:UIBarButtonItemStylePlain target:self action:@selector(settingsButtonTapped:)];
    self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:componentsButton, settingsButton, nil];
    self.navigationItem.titleView = searchBar;

Проблема здесь заключается в различии UINavigationController, которое управляет UINavigationBar, и UINavigationItem, которое вы и UINavigationController совместноуправлять.(Не забудьте протокол UINavigationBarDelegate, в котором мало используемых, но полезных методов.)

0 голосов
/ 29 декабря 2011

Вы пытаетесь установить navigationItem на контроллере навигации вместо контроллера представления.

...