2016-08-28 10 views
-1

毎回異なるタイトルで同じアラートを表示する必要がある したがって、文字列を取り、アラートのタイトルを変更する関数を作成したいこのアラートを表示するIOS SWIFT 2 - 別のシーンで異なるタイトルの同じアラートを表示

私の質問はどこですか?別のviewControllersから呼び出す方法は?

+0

私はUIAlertControllerの拡張を作成してそこに書きます。 – Byte

+0

ありがとう@Byte –

答えて

0

独自のカスタムクラスを実装することでUIAlertControllerを拡張できます。次に、のタイトルを変更するだけで、このコントローラを表示することができます。以下はサンプルコードですが、動作します。あなたがそのコンセプトを理解することを願っています。

import UIKit 

extension UIAlertController { 
class func alertControllerWithTitle(title: String, message: String) -> UIAlertController { 
    let controller = UIAlertController(title: title, message: message, preferredStyle: .Alert) 
    controller.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil)) 
    return controller 
} 
} 

class ViewController: UIViewController { 

let someProperty = 0 
var alertTitle = "" 

override func viewDidLoad() { 
    super.viewDidLoad() 

} 

override func viewDidAppear(animated: Bool) { 
    someMethod() 
} 

func someMethod() { 
    switch someProperty { 
    case 0: 
     alertTitle = "someProperty is 0" 
    case 1: 
     alertTitle = "someProperty is 1" 
    default: 
     alertTitle = "someProperty is default" 
    } 

    //present alert 
    let controller = UIAlertController.alertControllerWithTitle(alertTitle, message: "some message") 
    presentViewController(controller, animated: true, completion: nil) 
} 

} 
+0

ありがとうございます@aatalyk –

+0

あなたはようこそ) – aatalyk

0

この関数は、スタンドアロン関数(つまり、構造体またはクラスの一部ではない)として作成できます。これは、View Controllerなどのクラスを呼び出すクラスと同じモジュール内のどこにでも存在できます。個人的には、ビューコントローラの近くのそれ自身のファイル(<yourFunctionName>.swiftと呼ばれます)または同様の機能を含むユーティリティファイルに配置します。

この関数はビューコントローラと同じモジュールで定義されているため、関数によって直接呼び出すことができます。

+0

お返事ありがとうございました –

0

警告機能がparameter.Conformこのプロトコルのようタイトルを有すること、共通のクラスでその機能のためのプロトコルを作成し、それが設定さUIAlertController返す必要があり、そのクラスでこの機能を置き、一般的なクラスを作成します。アラートを表示するクラスをデリゲートから呼び出すとself.presentViewController(....に表示されます。

関連する問題