簡體   English   中英

檢查字段並在按鈕單擊Xamarin iOS(C#)上使用segue

[英]Check fields and use segue on button click Xamarin iOS (C#)

我想檢查字段是否為空或為空,請鍵入“ UITextField”。 但是當我單擊按鈕時,如果字段為Null或Empty,則我的應用程序將轉到另一個ViewController。

我的代碼:

    partial class OformlenieViewController : UIViewController
{
    public string house;
    public string kvart;
    public string street;
    public string FIO;
    public string code;
    public string telephone;
    public string comment;
    public OformlenieViewController (IntPtr handle) : base (handle)
    {

}
public override void ViewDidLoad ()
{
    base.ViewDidLoad ();

    ScrollView.ContentSize = new SizeF (320, 883);
    ScrollView.AutoresizingMask = UIViewAutoresizing.FlexibleHeight;
    ScrollView.ScrollEnabled = true;

    View.AddSubview (ScrollView);

    ulitsa.ShouldReturn = delegate {
        ulitsa.ResignFirstResponder ();
        return true;
    };

    kvartira.ShouldReturn = delegate {
        kvartira.ResignFirstResponder ();
        return true;
    };

    dom.ShouldReturn = delegate {
        dom.ResignFirstResponder ();
        return true;
    };

    fio.ShouldReturn = delegate {
        fio.ResignFirstResponder ();
        return true;
    };

    kod.ShouldReturn = delegate {
        kod.ResignFirstResponder ();
        return true;
    };

    tel.ShouldReturn = delegate {
        tel.ResignFirstResponder ();
        return true;
    };

    coment.ShouldReturn = delegate {
        coment.ResignFirstResponder ();
        return true;
    };

    send_zakaz.TouchUpInside += delegate {

        if (string.IsNullOrEmpty (ulitsa.Text)) {
            BTProgressHUD.ShowToast ("Заполните поле 'Улица'  ", showToastCentered: false, timeoutMs: 1000);
        }
        if (string.IsNullOrEmpty (dom.Text)) {

            BTProgressHUD.ShowToast ("Заполните поле 'Дом'  ", showToastCentered: false, timeoutMs: 1000);
        }

        if (string.IsNullOrEmpty (kvartira.Text)) {
            BTProgressHUD.ShowToast ("Заполните поле 'Квартира'  ", showToastCentered: false, timeoutMs: 1000);
        }
        if (string.IsNullOrEmpty (fio.Text)) {
            BTProgressHUD.ShowToast ("Заполните поле 'Ф.И.О'  ", showToastCentered: false, timeoutMs: 1000);
        }
        if (string.IsNullOrEmpty (kod.Text)) {
            BTProgressHUD.ShowToast ("Заполните поле 'Код'  ", showToastCentered: false, timeoutMs: 1000);
        }
        if (string.IsNullOrEmpty (tel.Text)) {
            BTProgressHUD.ShowToast ("Заполните поле 'Телефон' ", showToastCentered: false, timeoutMs: 1000);
        }
        else {
            using (var client = new WebClient ()) {

                street = ulitsa.Text;
                kvart = kvartira.Text;
                house = dom.Text;
                FIO = fio.Text;
                code = kod.Text;
                telephone = tel.Text;
                comment = coment.Text;
                var doc = new XmlDocument ();
                var documents = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments);
                var filePath = Path.Combine (documents, "myFile.xml");//Path.Combine(documentsPath, "myFile.xml");
                doc.Load (filePath);

                var values = new NameValueCollection ();
                //values["Customer"].Replace("{FIO}", FIO);
                values ["Order"] = doc.OuterXml;

                values ["Order"] = values ["Order"].Replace ("{StreetName}", street.ToString ());
                values ["Order"] = values ["Order"].Replace ("{FlatName}", kvart);
                values ["Order"] = values ["Order"].Replace ("{HouseName}", house);
                values ["Order"] = values ["Order"].Replace ("{FIO}", FIO);
                values ["Order"] = values ["Order"].Replace ("{Code}", code);
                values ["Order"] = values ["Order"].Replace ("{Phone}", telephone);
                values ["Order"] = values ["Order"].Replace ("..", comment);
                Console.WriteLine ("Proverka " + street + " " + FIO);
                Console.WriteLine (doc.OuterXml);

                values ["OrderText"] = "hello";
                doc.Save (filePath);
                Console.WriteLine (doc.OuterXml);
                var response = client.UploadValues ("http://91.246.122.43:1998/fas.asmx/AddOrder", values);
                Console.WriteLine ("---------------------Заказ отправлен на ФО-------------------------");
            }

        }

    };

}

}

在Main.storyboard文件中截圖我的設計: 在此處輸入圖片說明

我認為我的問題是segue,如果我正確在代碼中如何使用segue? 我該如何解決我的問題?

在設計器中,不要從按鈕到下一個控制器繪制順序,只需在控制器之間繪制即可。 然后,您可以像這樣手動觸發它:

yourButton.TouchUpInside += (s, e) =>
{
    // do your checks here...

    // if everything is alright trigger your seque
    PerformSegue("YourSegue", this);
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM