2015-11-24 84 views
2

我想創建一個UIAlertController的子類,但我要瘋了,因爲我有一個構造函數的問題,這是我的子類:UIAlertController子問題迅速

class loginAlert : UIAlertController { 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 

    } 

} 

我認爲,這個子類必須有構造函數: UIAlertController(標題:字符串消息:字符串,preferredStyle:UIAlertControllerStyle),因爲它是UIAlertController的一個子類,但是當我做

loginAlert(title: "test", message: "test", preferredStyle: .Alert) 

我得到的錯誤,爲什麼我該從哪裏錯了?

+0

有什麼錯誤,你可以使用一個擴展?你爲什麼想要繼承UIAlertController? – kholl

+0

,因爲我想創建一個標準的uialertController,我在代碼中使用了很多 –

+0

實際上,如果你願意的話,你可以子類UIAlertController並定製它的一些私有屬性。請注意,Apple在提交商店時會檢查私有財產和API的使用情況:http://iphonedevwiki.net/index.php/UIAlertController – JAL

回答

12

UIAlertController Class Reference

子類的注意事項UIAlertController類旨在用於 原樣,不支持子類。該 類的視圖層次結構是私有的,不能修改。

您可以創建其視圖包含透明度,並且其UIModalPresentationStyle是.OverCurrentContext和UIModalTransitionStyle是.CrossDissolve一個非常類似的效果視圖控制器。

或者你可以在UIAlertController上編寫一個擴展,它可以添加需要在類之間共享的方法(例如,提供重複發出的警報的方法)。有關擴展的更多信息,請參見here

+0

好的,但如果我想創建一個標準的警報控制器,因爲我必須在我的代碼中使用相同的 –

+0

如果它是標準的,爲什麼你繼承? – beyowulf

+0

有關如何使用UIAlertController的概述,請參閱此處:http://nshipster.com/uialertcontroller/ – beyowulf

0

函數創建一個UIAlertController類

public func alert() { 
    let alert = UIAlertController(title: "Title", message: "I don't feel creative", preferredStyle: UIAlertControllerStyle.Alert) 
    // As many action as you want 
    let action = UIAlertAction(title: "OK", style: UIAlertActionStyle.Cancel, handler: nil) 
    alert.addAction(action) 
    self.presentViewController(alert, animated: true, completion: nil) 
} 

之外,但作爲beyowulf說,如果你想添加的方法UIAlertController