プロジェクションマッピング

エンターテインメントから工業利用まで、プロジェクションマッピングの活用・運用をお考えの方へ

more

インタラクティブ&サイネージ

情報表示用のデジタルサイネージから、センサーを利用したインタラクティブ要素などをお考えの方へ

more

VR/360MOVIE

VRHMD用コンテンツからプラットフォームを利用した360度ムービーを活用したPRをお考えの方へ

more
CONTACT 052-253-9866

【Xcode】 画面遷移で値の受け渡し

2014.02.04 火曜日 06:52:33

MOK_nikkoukamihashi_02

アプリ内で画面遷移する際に、値を保持して、遷移後の画面で表示させたい場合があると思います。
今回は、NSMutablearrayの中の値を、次の画面に渡したかったので、
phpのPOSTのように出来ないだろうかと思い、調べてみました。

遷移させる前の画面

遷移させる前の画面のViewController.h(今回はViewController_beforeと仮定します)を以下のように記述します。
ここで遷移後のViewController.h(今回はViewController_after)を読み込んでおきます。

//遷移させた後の.hファイルを読み込んでおく
#import "ViewController_after.h"

@interface ViewController_before : UITableViewController
//今回保持させたい配列
@property (nonatomic) NSMutableArray *arr;

@end

今回はTableViewで使用しましたのでUITableViewControllerと記述がありますが、通常はViewControllerなどになると思います。
続いてViewController.mへの記述です。

@interface ViewController_before
{
    NSMutableArray *_arr;   
}
@end

@implementation ViewController_before
@synthesize arr;


//今回はTableViewに使ったのでこんな感じで使いました。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    _arr = [[NSMutableArray alloc] initWithArray:arr];

    return [_arr count];
}


//遷移先の画面に値を渡す
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"arrSendSegue"]) {
        ViewController_after *viewController_after = segue.destinationViewController;
        viewController_after.arr = _arr;
    }
}

遷移後の画面

遷移後の画面のViewController.hを以下のように記述します。

@interface ViewController_after : UITableViewController

@property (nonatomic) NSMutableArray *arr;

@end

遷移後のViewController.mへの記述はこのように記述しました。

@interface ViewController_after
{
    NSMutableArray *_arr;   
}
@end

@implementation ViewController_after
@synthesize arr;

storyboardを確認

値の受け渡し処理で設定したisEqualToStringはsegueのIdentiferと同じ名前にします。
以下の図の丸で囲った部分をクリックすると右側に入力出来る部分が表示されると思います。

スクリーンショット 2014-02-04 6.59.50

以上で、「arr」の中に配列が保持されました!
今回はTableViewに使用したので、numberOfRowsInSectionの部分の処理で使用しましたが、
ここは単純にviewDidLoadに値を表示させるような処理でも可能だと思います。

本当はphpでPOSTさせるような感じで、パパッと行いたいと思っていたのですが、そうは行きませんでした…
もう少し簡単な方法は無いか調べていきたいです!

今回参考にさせて頂いたサイトはこちらです。ありがとうございました!
Category:Development , Xcode     Tag:
Authorブログの著者について
田中 義弘

田中 義弘

イベントプロダクション・グラフィックデザイナーを経て、2010年3月に株式会社アイデアクラウドを設立。近年、WEBから得た技術をベースに、プロジェクションマッピング事業をはじめとした先端事業をスタート。

Our Business
最近の記事
人気記事
Our Project