2014-02-21 7 views
0

добавить кнопку программен с помощью внешнего класса:добавление кнопки программно

файла заголовок: метод

-(UIView*) makeButtonNotification; 

файла:

-(UIView*) makeButtonNotification{ 

UIImage * buttonImage = [UIImage imageNamed:@"chat-notify.png"]; 

button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button addTarget:self 
      action:@selector(goChat) 
forControlEvents:UIControlEventTouchUpInside]; 
button.frame = CGRectMake(280.0, 25.0, 30.0, 30.0); 
[button setBackgroundImage:buttonImage forState:UIControlStateNormal]; 

return button; 

}

этой кнопка вызова goChat метод

- (void)goChat{ 

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
chat = (chatViewController *)[storyboard instantiateViewControllerWithIdentifier:@"chatViewController"]; 
chat.view.layer.zPosition = 10; 


[[[[UIApplication sharedApplication] delegate] window] setRootViewController:chat]; 

}

я добавить вид с этим кодом:

[[[[UIApplication sharedApplication] delegate] window] setRootViewController:chat]; 

потому Otherways у меня есть проблемы с иерархией

чей вид не в иерархии окон!

я называю метод, как это:

notificationViewController* notification = [[notificationViewController alloc]init]; 
[self.view addSubview:[notification makeButtonNotification]]; 

теперь вид появляются, и это не проблема.

, но при появлении у меня есть кнопка с раскадрой для открытого меню левой панели, и это не работает.

есть какое-то другое решение?

спасибо.

ответ

0

Ваш makeButtonNotification создает и возвращает UIButton, но ваш тип возврата установлен в UIView? Кроме того, у вас есть свойство класса для кнопки? Как вы не создаете локальный экземпляр в этом методе?

Где вы это называете goChat метод, я предполагаю, что он находится за пределами appDelegate?

У вас установлены рамки кнопок до 280, вы уверены, что это находится в пределах self.view? к какой точке зрения вы добавляете?

Смежные вопросы