Добавьте UINavigationBar программно с помощью кнопки "Готово"
Итак, у меня есть модальный вид и вы хотите добавить UINavigationBar программно с помощью кнопки "Готово", чтобы закрыть это представление, когда пользователь закончит чтение содержимого.
Любые идеи о том, как это сделать, и если это возможно без использования конструктора интерфейса?
Ответы
Ответ 1
Прошу прощения, что никто здесь на самом деле не читал ваш вопрос... вот код, который вы ищете:
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
navBar.backgroundColor = [UIColor whiteColor];
UINavigationItem *navItem = [[UINavigationItem alloc] init];
navItem.title = @"Navigation Bar title here";
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:@"Left" style:UIBarButtonItemStylePlain target:self action:@selector(yourMethod:)];
navItem.leftBarButtonItem = leftButton;
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Post" style:UIBarButtonItemStylePlain target:self action:@selector(yourOtherMethod:)];
navItem.rightBarButtonItem = rightButton;
navBar.items = @[ navItem ];
[self.view addSubview:navBar];
Надеюсь, это поможет, удачи:)
Добавьте этот код в свой метод viewDidLoad, и все будет построено. Имейте в виду, замените селекторы своими сигналами своего метода -
Счастливое кодирование
Ответ 2
Это определенно возможно.
Вероятно, самый простой способ - вставить UIViewController
, который представляет модально в UINavigationViewController
, а затем добавляет кнопку Done
, делая что-то вроде
UIBarButtonItem * doneButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(dismiss)];
self.navigationItem.rightBarButtonItem = doneButton;
и реализовать метод dismiss
, как следует
- (void)dismiss {
[self.presentingViewController dismissViewControllerAnimated:YES
completion:nil];
}
Ответ 3
//add done button to navigation bar
UIBarButtonItem *doneBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(userPressedDone)];
self.navigationItem.rightBarButtonItem = doneBarButtonItem;
Тогда у вас есть такой метод, как это где-то в вашем контроллере просмотра
-(void)userPressedDone {
// Action For Done Button Tapped
}