2016-07-02 8 views
2

こんにちは私はios devを使いこなしています。私は 'settings viewController'にあるボタンを作ろうとしています。 。 以下のコードは、この目的のためにうまくいくことがわかったので、現在appDelegateクラスにあります。ios - アプリケーションの色のテーマを変更するには

これで、私の「設定viewController」のボタンをappDelegateのコードをアクティブにする方法がわかりません。私はイベントのリスナーを設定する必要がありますか?クロージャを使用しますか?

何か助けていただければ幸いです。可能であれば、コードソリューションを投稿してください。:)

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

    UINavigationBar.appearance().tintColor = UIColor.whiteColor() 
    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()] 
    Style.greenTheme() 
} 

答えて

0

ソリューション:

extension UIColor{ 

    @nonobjc static var clr_blue: UIColor! 

    static func initWithColorScheme(cs: ColorScheme){ 
    switch cs{ 
    case .Default: 
     clr_blue = blueColor() 
    case .Custom: 
     clr_blue = UIColor(hue: 0.6, saturation: 0.85, brightness: 1, alpha: 1) 
    } 
    } 

} 

enum ColorScheme{ 
    case Default, Custom 
} 

あなたが望む限り多くのカスタム色とカラースキームを作成します。使用法:

UIColor.clr_blue 

しかし、次のようにapplication:didFinishLaunchingWithOptions:内のあなたのUIColorを初期化することを忘れないでください:UIColor.initializeWithColorScheme(.Custom)

あなたのUIViewControllerに、このメソッドを追加し、再起動することなく、現在のUIViewControllerの配色を変更するには:

func changeSchemeTo(cs: ColorScheme){ 
    UIColor.initializeWithColorScheme(cs) 
    for subview in self.view.subviews{ 
    subview.setNeedsDisplay() 
    } 
} 
+0

@thatGuyNeilこの回答があなたの問題の解決に役立つと感じたら、緑色のチェックマークをクリックして「受け入れ済み」とマークしてください。これはコミュニティが未回答の質問に焦点を当てるのに役立ちます。 – Lahiru

0

appDelegateは、特にアプリケーション全体のオプションを設定するためのものです。あなたがボタンをタップしたとき、これらのことをやりたいと思っているなら、あなたは単にあなたのインターフェイスに接続してボタンのIBActionにコードのこれらの行を追加することをお勧めします:

@IBAction func greenButtonTapped(sender: AnyObject) { 
    <#Code to be run when button tapped#> 
} 

それからちょうどに接続しますあなたのUI要素とあなたはすべて設定されています。

+0

明確にするために、そのコードはAppDelegate.swiftファイルではなく、その特定のシーンのViewController.swiftに入ります。 –

+0

手伝ってくれたら、私の答えを自由にアップしてください! –

+0

そうだ。このメッセージを受けました:「評判が15未満の人の投票は記録されますが、公開された投稿のスコアは変更されません。 :) – thatGuyNeil

0

だから今、私は私のボタンを持っているかわからない「の設定はViewControllerを」application:didFinishLaunchingWithOptions:実行自動的アプリ起動中appDelegate

コード内のコードを活性化させます。したがってこれは、外観プロキシを設定するのに適した場所です。 「活性化する」ものは何もない。

他のコードを実行して後で外観プロキシを設定する場合は、注意が必要です。これは通常のことではありません。外観プロキシを使用して、既存のインタフェース要素の外観を変更することはできません。 "テーマ"が変更されたときに、既存のインタフェースを手動で変更する必要があります。私が使用

関連する問題