まずは以前TableViewControllerのときと同様に追加したViewControllerにClassを追加します。
そして、segueの矢印のアイコンをクリックして[Segue Identifier]の名前を設定します。
ここで、値を渡すための準備をします。遷移先にプロパティを設定します。
//ここでは、NSString型のrecieveを宣言しています。
@interface ResultViewController : UIViewController
{
NSString *recieve;
}
@property NSString *recieve;
//ついでにLabelを設定します。
@property (weak, nonatomic) IBOutlet UILabel *resultLabel;
ソースファイルの方には
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
//言うまでもなくLabelにプロパティの値を渡しています。
_resultLabel.text = _recieve;
}
そして、遷移元のClassで値を渡す準備をします。まずはヘッダーファイルに
#import "ResultViewController.h"(遷移先のヘッダーファイル名)
を書いて、遷移先のClassをインポートします。 そして、ソースファイルに値の遷移をするメソッドを記述します。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
//seugeを特定するため、Segue Idetifierを特定します。複数のsegueを特定するのに必要です。
if ([[segue identifier]isEqualToString:@"btnPush"])
{
//遷移先のClassのViewを作成し、先ほど記述したプロパティに値を渡します。
ResultViewController *resultviewcontroller = [segue destinationViewController];
resultviewcontroller.recieve = _text.text;
}
}
[おまけ]UITextFieldからキーボードを出すとデフォルトでは、Safariの検索のとこみたいに引っ込んだりしません、なので引っ込むようにします。
そのためには、デリゲート(委託)メソッドを使用して、UITextFieldの処理をこちら側で設定します。
デリゲートの設定はこんな感じ。
ヘッダーファイル
ソースファイル//UIViewControllerの後ろに
<UITextFieldDelegate>を追加
@interface ViewController : UIViewController <UITextFieldDelegate>
- (void)viewDidLoad
{
[super viewDidLoad];
//TextFieldのデリゲートを設定します。
_text.delegate =self;
}
//returnキーが押されたときの処理を指定するメソッドです。
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
//キーボードを隠すメソッドを実行します。
[textField resignFirstResponder];
return YES;
}
これで完成。入力した文字を遷移先のビューで表示するアプリです。
はじめまして!無料でアプリを簡単に作成できるツールを公開中です。
返信削除よかったらぜひお試しください(^^)
また遊びにきます!アプリ&ブログ頑張ってくださーい。
クールアプリ(http://www.coolapp.jp)