2016-10-19 8 views
0

最初のView Controllerに残りの30個のView Controllerの全機能が含まれるゲームを開発しています。最初のビューコントローラ。私の計画は、同じ背景画像を使用するすべての30のビューコントローラまたはシーンのための単一のストーリーボードを使用することです。私が話していることについてのアイデアを得るために、私はこのDrawing.Storyboard画像で2シーンしか表示しませんが、この同じストーリーボードにはさらに28のシーンがあることを計画しています。 Drawing.StoryboardView Controller(UIViewController)同じ背景画像を使用する複数のシーンを含むストーリーボード

このストーリーボードの30個のシーンすべてに、同じUIView背景イメージがある場合、その処理方法。シーンの各ビューに同じ背景イメージを追加するか、最初のシーンビューに背景イメージを追加し、残りの部分についてコンテナビューを使用するだけですか?注意過去にコンテナビューを使用したことはありません。 、あなたがちょうどそうUIViewControllerの親/基本クラスを作成し、viewDidLoad()

self.viewUIImageViewを追加することができ、すべての30 ViewControllersのために、その基地のViewControllerに拡張する必要があることを行うには

+0

エクステンションを使用して背景画像を作成し、それをストーリーボードに追加する必要のないすべてのコントローラから呼び出します –

+0

Appdelegateのウィンドウに画像を設定してください:http://stackoverflow.com/questions/4915474/ set-background-image-for-iphone-ipad-app?answerertab = votes#tab-top – KKRocks

+0

あなたの道を行くなら、答えを投稿したり、例を挙げたりできますか?ありがとう。 – BiHMaster

答えて

0

「h44f33z」によるさらなる調査と提案が行われた後、ストーリーボードでUIViewイメージを使用しなくても、次の機能が動作します。

のViewController A

class ViewControllerA: UIViewController { 
    override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    // Load background image for all views 
    let bgImageView = UIImageView(frame: UIScreen.main.bounds) 
    bgImageView.image = UIImage(named: "bg_image") 
    self.view.addSubview(bgImageView) 
    } 
} 

ビューコントローラBそれはこの設定でのViewController Aのサブクラスであるので、あなたはViewControllerをBにしなければならないものは何もありません

class ViewControllerB: ViewControllerA { 
    override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    } 
} 

ますビューが最初のView Controllerのサブクラスである限り、できるだけ多くのビューを持つことができます。

0

一つの方法。これは、この

class StartViewController: BaseViewController 

あなたの基底クラスviewDidLoadのようになります

override func viewDidLoad() { 
    super.viewDidLoad() 

    let bgImageView = UIImageView(frame: UIScreen.mainScreen().bounds) 
    bgImageView.image = UIImage(named: "bg-image") 
    self.view.addSubview(bgImageView) 

} 

のようなものは、あなたがイベントより多くの機能を追加したり、基底クラスで処理し、簡単にすべての30件の子viewControllersで使用することが可能になります

+0

このコードを追加して、私のストーリーボードからバックグラウンドイメージを持ったbg_imageビューを2番目のビューコントローラ用に削除すると、bg_imageは最初のビューコントローラのサブクラスである2番目のビューコントローラにロードされません。他のまたは今後の提案!ありがとう。 – BiHMaster

+0

最初のView Controllerはどういう意味ですか?ベースコントローラー? – xmhafiz

+0

基本的に私はViewControllerAとViewControllerBを持っています。必要なものはすべてViewControllerAまたはBaseContentControllerBのViewControllerAのサブクラスです。 ViewControllerBでこのコードを追加すると、イメージはロードされません。基本的にViewControllerBにはUIViewを持つ独自のシーンがあります。そのUIViewを削除し、このコードを使用してbg_imageをロードすると、ロードされることはありません。 – BiHMaster