我想在我的UI中使用继承。我的大多数视图使用相同的导航栏和相同的条形按钮项和相同的背景。
所以我写了一个" GenericViewController"以编程方式,这是根类,其他类是" GenericViewController"的子类。
这很好用但是有一个问题。当我尝试使用其中一个子类中的故事板设置UIButton
(或其他内容)时,该按钮不再显示。
我认为这是因为我首先加载"故事板视图"然后我调用[self viewDidLoad];
,其中是根类的代码,背景隐藏了按钮。
我的问题是:我可以先加载代码,然后再加载按钮吗?或者......有没有办法在视图中结合故事板使用继承?
这是我的#34; GenericViewController"代码:
- (void)viewDidLoad
{
[super viewDidLoad];
possibleTitles = [[NSSet alloc]initWithArray:[PossibleConnectionTitles getConnectionTitles]];
AppDelegate* myDelegate = (((AppDelegate*) [UIApplication sharedApplication].delegate));
UIWindow *window = [myDelegate window];
UIImage *myImage = [UIImage imageNamed:@"back1.png"];
UIImageView *imageView = [[UIImageView alloc]initWithImage:myImage];
//Startpoint.x, Startpoint.y, Width, Height.
[imageView setFrame:CGRectMake(0, 0, window.frame.size.width, window.frame.size.height)];
[self.view addSubview:imageView];
//NavigationBar
UINavigationBar *navigationBar = [[UINavigationBar alloc]init];
[navigationBar setBarStyle:UIBarStyleBlackOpaque];
[navigationBar setFrame:CGRectMake(0, 0, window.frame.size.width, window.frame.size.height/11)];
//BarButton
reachBarButton = [[UIBarButtonItem alloc] initWithTitle:[[PossibleConnectionTitles getConnectionTitles]objectAtIndex:0]
style:UIBarButtonItemStyleDone
target:nil
action:nil];
[reachBarButton setPossibleTitles:possibleTitles];
UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:_titleNavBar];
item.leftBarButtonItem = reachBarButton;
item.hidesBackButton = YES;
[navigationBar pushNavigationItem:item animated:NO];
[self.view addSubview:navigationBar];
}
重复一遍,我需要在背景前面显示一个UIButton,我想用这样的故事板来做:
最终结果将是前面的按钮,以及手写的根类中的其他元素(背景,导航栏......)。
非常感谢。 干杯,豪尔赫。
已解决:感谢@AronCrittendon。 我已修复它将背景图像发送回来。 在" GenericViewController"我添加了这一行:
[[self view]sendSubviewToBack:imageView];