В раскадровке я создал DetailViewController с UIToolbar внизу и одной кнопкой.Как сменить программные кнопки UIToolbar, если они созданы в Storyboard?
Есть особые времена, когда я хочу представить этот контроллер вида с помощью альтернативного набора кнопок.
Когда я хочу представить модально вид контроллера с дополнительными кнопками, я должен инициализировать контроллер представления программно из раскадровки так:
DetailViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"Detail"];
[controller newButtons:YES];
[self presentViewController:controller animated:YES completion:nil];
В файле DetailViewController.m У меня есть метод, который называется выше:
-(void) newButtons: (BOOL) isNew
{
if (isNew) {
UIBarButtonItem *doneItem = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@ selector(save:)];
UIBarButtonItem *cancelItem = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
target:self
action:@ selector(cancel:)];
NSArray *buttonArr = [[NSArray alloc] initWithObjects:doneItem, cancelItem, nil];
[self.toolbar setItems:buttonArr animated:YES];
}
}
Я создал выход из раскадровки к DetailViewController.m файл, щелкнув увлекая в верхней части файла, который сделал:
@property (weak, nonatomic) IBOutlet UIToolbar *toolbar;
Все эти шаги, но когда я нажимаю кнопку, чтобы представить контроллер вида, , он просто отображает контроллер вида с исходной кнопкой из раскадровки, а не 2 новых, которые я программно добавил.
Почему нет новых кнопок. Я зарегистрировал тестовый оператор из метода newButtons, и он вызывает его наверняка. Просто не добавляя кнопки ???
UPDATE:
я добавил точку останова [self.toolbar setItems: анимированный] и не назвал заявление, даже если метод был вызван. self.toolbar - null.
Как это выглядит? Я нажимаю cntrl-click в верхнюю часть DetailViewController.m и добавляет его. Я пробовал как сильные, так и слабые свойства.
Установите контрольную точку на линии, где вы называете 'setItems: анимированные:' 'на self.toolbar'. Подтвердите, что точка останова достигнута, а затем убедитесь, что 'self.toolbar' не' nil'. – rmaddy
Я добавил точку останова в [self.toolbar setItems: animated], и она не вызывала оператор, хотя метод был вызван. self.toolbar - null. Почему это null? Я cntrl-click перетащил в верхнюю часть DetailViewController.m и сделал его сильным указателем? – nearpoint