我在許多類中都有Alert調用,並且我希望有一個Alert類處理所有用途,即需要警報的情況下調用Alert類。所有的警報代碼都在一個地方。全局使用的類
現在,我在每個出現的課程中都重複了警報代碼。我需要一組警報代碼。
我該怎麼做?
我在許多類中都有Alert調用,並且我希望有一個Alert類處理所有用途,即需要警報的情況下調用Alert類。所有的警報代碼都在一個地方。全局使用的類
現在,我在每個出現的課程中都重複了警報代碼。我需要一組警報代碼。
我該怎麼做?
您需要爲您的警報創建一個類。
class MyCustomAlertView{
static let sharedUtils = MyCustomAlertView()
class func showAlertOnVC(targetVC: UIViewController, title: String, message: String)
{
// write custom code here
let alert = UIAlertController(
title: title,
message: message,
preferredStyle: UIAlertControllerStyle.alert)
let okButton = UIAlertAction(
title:"OK",
style: UIAlertActionStyle.default,
handler:
{
(alert: UIAlertAction!) in
})
alert.addAction(okButton)
targetVC.present(alert, animated: true, completion: nil)
}}
無論在項目中,您需要調用警報,如下呼籲:
MyCustomAlertView.showAlertOnVC(targetVC: self, title: "MyTitle", message: "test message") // whatever title and message you want
警報您可以使用第三方庫,如:
檢查出來,它非常有用。
此外,如果你想自己做,你可以創建一個自定義的類。
例如:
public class AlertUtils {
// Build classic Alert with OK Button
class func buildAlertInfo(withTitle title: String?, andMessage message: String?, withHandler handler: (UIAlertAction -> Void)?) -> UIAlertController {
let alertController = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: handler))
return alertController
}
// Build custom Alert with an OK Button and a redirection Button
class func buildAlertInfoWithFavButton(withTitle title: String?, andMessage message: String?, withHandler handler: [((UIAlertAction) -> Void)]?) -> UIAlertController {
let alertController = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: handler!.first))
alertController.addAction(UIAlertAction(title: "Favoris", style: UIAlertActionStyle.Default, handler: handler!.last))
return alertController
}
}
有了這個類,你可以建立和像你想自定義您的通知。您需要帶有「確定」按鈕和「設置」按鈕的警報。 您可以創建儘可能多的自定義方法來構建特定的警報。
這裏是你如何使用它:
let alert = AlertUtils.buildAlertInfo(withTitle: NSLocalizedString("alert_info_title", comment: ""),
andMessage: NSLocalizedString("alert_message", comment: ""), withHandler: nil)
self.presentViewController(alert, animated: false, completion: nil)
注:請記住,這是重新集結在NSLocalizedString您的所有字符串的最佳做法。
的其他例子與處理程序:
let alert = AlertUtils.buildAlertInfoWithFavButton(
withTitle: "Alert Info"
andMessage: "Whatever you want",
withHandler: [okHandler, favoriteHandler]
)
self.presentViewController(alert, animated: false, completion: nil)
而且你可以在處理程序爲您的報警按鈕進行自定義操作
//Ok handler
func okHandler(action: UIAlertAction) {
//Do nothing
}
//Favorite handler to redirect to the Favorite View Controller
func favoriteHandler(action: UIAlertAction) {
self.navigationController?.pushViewController(FavoritesViewController(), animated: true)
}
使一個類的方法爲你的類,並用普通alertview代碼,所以你不需要任何它的實例。 然後只需導入這個通用類,然後你可以在任何視圖控制器中調用類的方法,如:
[InternetAlert showAlert];
我寫了一個很長的答案。我希望它能幫助你。順便說一句,你在Objective C或Swift中編碼嗎? – Balanced
你自己寫了什麼代碼來嘗試做這件事?請不要讓人們爲你做這項工作。告訴我們你已經嘗試了什麼,什麼不起作用,以表明你已經花時間去嘗試幫助你自己了,它使我們無法提供明顯的答案,最重要的是它可以幫助你獲得更具體和相關的信息回答。另請參閱[問] –