IOS SWIFT 2 - 在不同的场景

时间:2016-08-28 10:08:17

标签: ios swift

我需要在每次显示具有不同标题的相同警报 所以我想创建一个函数,它接受一个字符串并更改警报的标题,然后显示此警报

我的问题是:我应该在哪里创建这个功能?以及如何从另一个viewControllers调用它?

3 个答案:

答案 0 :(得分:0)

该函数可以创建为独立函数(即不是任何结构或类的一部分)。它可以存在于与调用它的类相同的模块中的任何位置,例如视图控制器。就个人而言,我会将它放在靠近视图控制器的文件中(称为<yourFunctionName>.swift),或者放在包含类似功能的实用程序文件中。

因为函数是在与视图控制器相同的模块中定义的,所以它们可以直接调用它。

答案 1 :(得分:0)

创建一个公共类,将此函数放在该类中,它应该返回一个已配置的 UIAlertController ,在该公共类中为该函数创建一个协议,其警报函数具有 Title as parameter。将此协议与您要显示Alert in的类相关联,由其委托调用它并将其显示在<body> <div class="contaienr-fluid"> <h1 id="info"></h1> </div> <div class="container-fluid"> <h1>asd<br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> asd <br /> </h1> <!-- I know, incredibly stupid way to create space on the page--> </div> </body>

答案 2 :(得分: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)
}

}