2017-07-06 132 views
0

我正在使用Xamarin.Forms開發移動應用程序。我有要求在對話框中獲得輸入。所以,我已經使用UIAlertView來獲取文本輸入,如下所示。防止在PositiveButton上關閉UIAlertView點擊

enter image description here

我需要防止從UIAlertView中收盤按鈕的點擊。即使在啓動操作之後,我仍需要保留UIAlertView對話框。

任何人都可以幫助我嗎?

問候,

卡菲基恩

+0

對不起,你能告訴我們你的推理嗎?在他們提供第一個問題的答案之後,你是否需要他們輸入更多信息? – Digitalsa1nt

+0

我需要在點擊保存按鈕後驗證用戶輸入。這裏驗證意味着 *驗證特殊字符。 *驗證名稱是該名稱已經存在。 – Karthik

+0

那麼如果驗證失敗,重新顯示彈出窗口會出現什麼問題? – Digitalsa1nt

回答

1

您可以創建此使用XIB文件,但是如果你不反對的對話框關閉並重新打開它應該遇到驗證問題,那麼下面將一個自定義的UIView工作正常。

編輯:調整爲允許您傳回驗證消息,作爲UIAlertView上的主要消息。

private string message = string.Empty(); 

public void recursiveDialog() 
{ 
    string input = string.Empty(); 

    if(message == string.Empty()) { message = "Please enter the view name"} 

    var alert = UIAlertController.Create ("Save View", message, UIAlertControllerStyle.Alert); 

    alert.AddTextField ((field) => { 
    field.Placeholder = "view name";}); 

    alert.AddAction (UIAlertAction.Create ("Cancel", UIAlertActionStyle.Cancel, null)); 

    alert.AddAction (UIAlertAction.Create ("Save", UIAlertActionStyle.Default, action => { 
       input = alert.TextFields[0].Text 
    })); 

    if (alert.PopoverPresentationController != null) 
     alert.PopoverPresentationController.BarButtonItem = myItem; 

    PresentViewController (alert, animated: true, 
    action => { 

     // when a dialog is selected and returns, run validation 

     if(input == [whatever you want to use to validate it against]) 
     { 
        // it failed because it already exists for example so change our message 

        message = "That view name already exists, try again."; 

      // already exists, so re-run method. 
      recursiveDialog(); 
     } 
     else 
     { 
      // doesn't alread exist so carry on with whatever you want to do with the name provided. 

        // clear your message variable 
        message = string.Empty(); 
     } 
    }); 
} 
+0

謝謝!我會試試這個。還有一點疑問,你有沒有想法如何在Alert框中顯示驗證消息(帶有TextField)? – Karthik

+0

@Karthik我已經對上面的代碼進行了更改,它應該允許您通知用戶爲什麼對話框重新出現。 – Digitalsa1nt

+0

感謝您的建議!但我需要在TextField下面顯示消息。 再次感謝您的回覆。 – Karthik

相關問題