Я хочу добавить UIToolbar программно в режим просмотра, когда пользователь нажимает кнопку (в моем случае, когда они увеличивают фотографию).Создание UIToolbar программно
Кажется, что это нормально, когда я создаю панель инструментов в методе кликов и добавляю к подзону, но если я создаю панель инструментов в методе viewDidLoad, назначьте ее переменной экземпляра и добавьте эту переменную экземпляра позже в subview при нажатии ничего не появляется. Отладчик показывает, что переменная экземпляра является UIToolbar и не имеет значения null. Я не хотел создавать и уничтожать одну и ту же панель инструментов при каждом нажатии, поэтому я подумал, что лучше просто сохранить ее как переменную экземпляра, которую я добавляю и удаляю из представления по мере необходимости. Правильно ли это?
Почему это видно в одном случае, а не в другом.
Настройка
@synthesize toolBar;
- (UIToolbar*)createToolbar
{
UIToolbar* toolbar = [[UIToolbar alloc] init];
toolbar.frame = CGRectMake(0, self.view.frame.size.height - 44, self.view.frame.size.width, 44);
UIBarButtonItem *shareButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(sharePhoto:)];
NSArray *buttonItems = [NSArray arrayWithObjects:shareButton,nil];
[toolbar setItems:buttonItems];
return toolbar;
}
Это работает
- (void) clickMyButton {
toolBar = [self createToolbar];
[self.view addSubview:toolBar];
}
Это не показывает ничего
- (void)viewDidLoad
{
[super viewDidLoad];
toolBar = [self createToolbar];
}
- (void) clickMyButton {
[self.view addSubview:toolBar];
}
Почему это не работает в последнем случае
Сохраняется ли ваша панель инструментов с сильной ассоциацией или назначается/слаб? – Shaun