我以编程方式使用外部类添加按钮:
文件标题:
-(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];
因为其他方面我有层次结构问题
,其视图不在窗口层次结构中!
我打电话给这样的方法: notificationViewController* notification = [[notificationViewController alloc]init];
[self.view addSubview:[notification makeButtonNotification]];
现在显示视图,这不是问题。
但是当出现时我有一个带有故事板的按钮,用于打开左侧面板菜单并且无效。
还有其他一些解决方案吗?
感谢。
答案 0 :(得分:0)
您的makeButtonNotification
正在创建并返回UIButton,但您的返回类型设置为UIView?另外,你有按钮的类属性吗?因为您没有在该方法中创建本地实例吗?
您在哪里调用此goChat
方法,我认为它在appDelegate
之外?
您将按钮帧原点设置为280,您确定这是在self.view的范围内吗?您将它添加到哪个视图中?