2012-01-12 50 views
1

我有一个iOS应用程序,它使用UIStoryboard来控制其流量。我希望所有在UIStoryboard中定义的观点都有共同的背景。有没有一种方法可以做到这一点,而无需将UIImageView控件添加到每个视图?UIStoryboard应用程序和共同的背景图像

我在下面试过,但它会导致我的应用程序崩溃与一个堆栈溢出错误:

-(void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UIImage *image = [UIImage imageNamed:@"MyBackgroundImage.png"]; 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
    [self.view addSubview:imageView]; 
    [self.view sendSubviewToBack:imageView]; 
} 

有没有更好的方式来做到这一点?在iOS应用程序中处理这种主题的最佳方式是什么?

回答

5

子类UIViewController并覆盖-viewDidLoad来创建您的图像并将其设置为视图的背景。现在让视图控制器需要您的自定义视图控制器的这个背景图像子类而不是UIViewController

0

在您的viewDidLoad:

UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 100, 50)]; 
imgView.image = [UIImage imageNamed:@"image.png"]; 
[self.view addSubview: imgView]; 
[self.view sendSubviewToBack:imageView]; 

应该做的伎俩。

0

事实证明,我上面发布的代码是完美的。我的解决方案与Mark Adams的建议相同:子类UIViewController,覆盖-viewDidLoad,创建和设置imageView,并使用新的子类作为我的viewController。

我想我可能会无意中将我的新子类设置为Interface Builder中的错误控件,这导致我的初始解决方案无法正常工作。