20
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Xamarin.Forms ページ遷移時のデータ受け渡しについて

Last updated at Posted at 2014-06-26

Xamarin.Forms では、NavigationPage(new Firstpage()) でページを呼び出すと、Navigation.PushAsync(new SecondPage()) でナビゲーションすることができます。PrepareForSegueStartActivity は当たり前ですが使いません。

データの受け渡しについて正しい方法かは分かりませんが、引数でデータを渡せましたので、メモとして残します。簡単なアプリであれば単純に渡す方法として大丈夫そうです。

FirstPage.cs
var editorName = new Entry {
        Keyboard = Keyboard.Text,
        Placeholder = "Input your name.",
    };
var editorAge = new Entry {  
        Keyboard = Keyboard.Numeric,
        Placeholder = "Input your age.",
    };
var button = new Button {
        Text = "Push me",
        HorizontalOptions = LayoutOptions.Fill,
    };
button.Clicked += (sender, e) =>
    {
        string[] yourData = { editorName.Text, editorAge.Text };
        Navigation.PushAsync(new SecondPage(yourData));
    };

Android の EditText、iOS の Text Field に相当する Entry の Text を引数として次のページに渡してみました。

SecondPage.cs
public SecondPage(string[] str)
{
    this.Content = new Label { 
        Text = "Your name is " + str[0] + " Your age is " + str[1],
        VerticalOptions = LayoutOptions.Center,
        HorizontalOptions = LayoutOptions.Center
    };
}

一応データの受け渡しが出来てます。

スクリーンショット 2014-06-26 13.33.04.png

スクリーンショット 2014-06-26 13.33.25.png

いいのかな…

xamarin-forms/XamarinForms_Navigation at master · ytabuchi/xamarin-forms
にアップしておきましたので、こうじゃね?ってのが分かる方は是非教えて下さい><

2014/6/27 追記

増田さん にコメントいただきました。しっかりやる場合は当然 MVVM でやった方が良いとのこと。

以上です。

20
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?