2012-01-12 81 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中的錯誤控件,這導致我的初始解決方案無法正常工作。

相關問題