【Xcode】AppDelegateで変数を他の画面に渡す

この記事について

環境Xcode、Objective-C
目的画面(クラス)をまたいで変数を共有する
結果AppDelegateにpropertyを作り、[[UIApplication sharedApplication] delegate]経由で参照する

つまずきポイント要約

  • AppDelegateは中央センターの役割。ここで作った変数はどのクラスからもアクセスできる

Xcode の AppDelegate は中央センターの役割をするので、AppDelegate 内で作った変数はどのクラスからもアクセスできる。

以下は AppDelegate の設定の手順。Single View Application でつくったものとする。

1.AppDelegate.h に全てのクラスから参照できる変数を設定する

//AppDelegate.h 内に記述

//全てのクラスから参照できる変数
@property (nonatomic, weak) NSString *shareString;

2.ViewController.h から AppDelegate.h をインポートする

//ViewController.h 内に記述

//インポート
#import "AppDelegate.h"

3.ViewController から AppDelegate 内の変数を参照する

//ViewController.m 内の viewDidLoad に記述

// AppDelegateのオブジェクトを取得する
AppDelegate *AD = (AppDelegate *)[[UIApplication sharedApplication] delegate];

//変数に文字列を代入する
AD.shareString = @"代入する文字列";

ラベルに表示したい場合

//ViewController.m 内の interface に記述

//変数 myString を宣言する
NSString *myString;

つづいて、

//ViewController.m 内の viewDidLoad に記述

//変数に文字列を代入する
AD.shareString = @"表示したい文字列";

myString = AD.shareString;

//ラベル(myLabelと命名)に表示
[self.myLabel setText:myString];

関連記事

タイトルとURLをコピーしました