2016-01-16 64 views
1

爲了在我的應用程序中實現更好的自定義,我想將UIAlertController放在UIViewController子類中。警報應該是UIViewController的一個子節點,以提供更大的靈活性。UIAlertController作爲子視圖控制器

達到此目的的最佳方法是什麼?

我已經嘗試到目前爲止添加警報作爲子視圖控制器。當我想要顯示警報時,我以模態方式呈現容器視圖控制器。

我也嘗試在視圖控制器上調用presentViewController(警報作爲參數)。但是,我不確定正確的方法是實現我所尋找的。

編輯:這些解決方案都沒有按照我的希望工作,但我不知道是因爲我做錯了什麼或者是因爲方法錯誤。

編輯2:增加的功能是提供UIKeyCommands,使選擇警報選項更容易。我沒有繼承UIAlertController的原因有兩個:(1)文檔指出它不應該被分類,並且(2)添加鍵盤命令UIAlertController不起作用。

回答

1

您能否解釋一下這種方法提供的靈活性?我並不懷疑它的確如此,因爲我對iOS開發相對比較陌生,但我無法完全弄清楚使用子視圖控制器要實現的目標。

如果您只是想從您的視圖控制器提供UIAlertController,只需創建警報控制器,配置它並使用presentViewController來顯示它。

然而,作爲一般方法,我遵循this thread中最常見的答案。它建議使用UIAlertController的子類或者使用自定義show方法的類別,爲警報控制器提供自己的窗口,以便警報可以全局呈現。

+0

我在第二次編輯中添加了更多信息。我會查看鏈接的線索並回復你。謝謝! – erdekhayser

+0

事實證明,實現這一目標的最佳方法是從容器視圖控制器調用presentViewController,並在當前上下文中使用此VC。 – erdekhayser

0

我不認爲你的問題是絕對清楚的,但也許你想要一個自定義的彈出視圖控制器,而不是警報?那麼你可能需要像STPopupController這樣的東西 - 它是可定製的,易於使用。

相關問題