次の画面へパラメータを渡して画面遷移する

ストーリーボードを連結し、パラメータを渡して画面遷移するサンプルを以下に作成しました。

サンプルダウンロード

必要な手順

  1. MainStoryBoardを開き、新しい UIViewControllerを画面に配置します
  2. controlキーを押しながら、最初の UIViewControllerから新しい UIViewControllerへ矢印をドラッグします
  3. UIViewController同士の間にできたアイコンを選択し、セグエの Identiferを指定します ※スクリーンショット1
  4. 新規ファイルから UIViewControllerのクラスを作成し、ここでは「SecondViewController」とします ※スクリーンショット2
  5. MainStoryBoard上から「SecondViewController」の下部分を選択し、「SecondViewController」を指定します

スクリーンショット1

UIViewController同士の間にできたアイコンを選択し、セグエの Identiferを指定します

スクリーンショット2

新規ファイルから UIViewControllerのクラスを作成し、ここでは「SecondViewController」とします

ソースコード

ViewController.h

1
2
3
4
5
6
7
8
9
10
11
12
13
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
  //次の画面へ渡す引数
  NSString *_arguments;
}

@property (nonatomic) NSString *arguments;
@property (weak, nonatomic) IBOutlet UIButton *nextButton;

- (IBAction)nextButtonEvent:(id)sender;

@end

ViewController.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#import "ViewController.h"
//ここで次の画面のヘッダファイルをインポートする
#import "SecondViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
  [super viewDidLoad];
  //次の画面へ渡す引数をセット
  _arguments = @"arguments";
}

- (IBAction)nextButtonEvent:(id)sender {
  //次の画面へ遷移
  [self performSegueWithIdentifier:@"secondSegue" sender:self];
}

//画面遷移時に呼ばれるメソッド
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  //2つ目の画面にパラメータを渡して遷移する
  if ([segue.identifier isEqualToString:@"secondSegue"]) {
    //ここでパラメータを渡す
    SecondViewController *secondViewController = segue.destinationViewController;
    secondViewController.arguments = _arguments;
  }
}

@end

SecondViewController.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#import <UIKit/UIKit.h>

@interface SecondViewController : UIViewController {
  //前の画面から受け取る引数
  NSString *_arguments;
}

@property (nonatomic) NSString *arguments;
@property (weak, nonatomic) IBOutlet UILabel *argumentsLabel;
@property (weak, nonatomic) IBOutlet UIButton *backButton;

- (IBAction)backButtonEvent:(id)sender;

@end

SecondViewController.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#import "SecondViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

@synthesize arguments = _arguments;

- (void)viewDidLoad
{
  [super viewDidLoad];
  //ラベルに前の画面から受け取った引数を表示
  self.argumentsLabel.text = _arguments;
}

- (IBAction)backButtonEvent:(id)sender {
  //前の画面へ戻る
  [self dismissViewControllerAnimated:YES completion:NULL];
}

@end

関連記事

お薦めの参考書

絶対に挫折しない iPhoneアプリ開発「超」入門 増補改訂第4版
Swiftについて知りたい開発者の方のみならず、プログラミング未経験者の方にも参考になる内容になっています。Swiftの基礎を一から丁寧に解説されており、この書籍があればネットで調べる手間をかなり省くことができると思います。

   このエントリーをはてなブックマークに追加

About

Masaki Hirokawa (@dolice_apps)

デザインエンジニア 廣川政樹の開発ブログ。Objective-Cや Javaなど iPhone/Androidアプリ開発に関する技術情報を掲載しています。

iPhone apps

  • リラックス・ヒーリング(無料)
  • 望みが叶う!引き寄せの法則アプリ(無料)
  • ミステリー - 怖い話や不思議な体験、都市伝説まとめ
  • 浮世絵壁紙 - 美しい日本画ギャラリー(無料)
  • 綺麗な壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)
  • クールな壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)

Android apps

  • 浮世絵壁紙 - 美しい日本画ギャラリー
  • 綺麗な高画質壁紙

Objective-C Classes

Tag Cloud

ActionScript(9) ActionScript3(7) Ad(4) Adfurikun(2) AdMob(9) Android(10) Animation(17) AppDelegate(3) ARC(1) ArrayList(1) AVAudioPlayer(4) AVAudioSession(1) AVFoundation(3) Banner(2) Bitmap(1) Camera(4) CGAffineTransform(4) CGBlendMode(2) CGContextRef(1) CGImageRef(1) Classes(44) CLLocationManager(1) ConnectivityManager(1) ContentResolver(1) CoreLocation(2) Delegate(3) Device(7) Display(1) DisplayMetrics(1) Download(101) Facebook(6) Foundation(72) Framework(2) Google Analytics(1) Handler(1) iAd(6) ImageView(1) In-AppPurchase(1) iOS(12) iOS 7(15) iOS 7.1(3) iOS 8(1) iPad(7) iPhone(21) iPhone 6(4) Java(7) JavaScript(2) LINE(4) Localize(1) Magazine(1) MediaStore(1) MFComposeViewController(1) Nend(1) NetworkInfo(1) NSArray(23) NSCalendar(3) NSData(2) NSDate(7) NSDateComponents(2) NSDateFormatter(2) NSDictionary(12) NSEnumerator(1) NSIndexSet(1) NSInteger(6) NSMutableArray(17) NSMutableDictionary(5) NSMutableOrderedSet(7) NSMutableString(4) NSMutableURLRequest(1) NSNotificationCenter(1) NSNumber(1) NSObject(1) NSOrderedSet(7) NSRange(2) NSSelectorFromString(1) NSSet(6) NSString(19) NSTimer(4) NSTimeZone(1) NSURL(7) NSURLConnection(1) NSURLRequest(2) NSUserDefaults(7) NSXMLParser(2) Objective-C(222) PHP(1) Products(14) QuartzCore(3) RSS(2) Runnable(1) Sample(51) Screensaver(9) SDK(2) ShareCompat(1) Social(10) StoreKit(1) Twitter(6) UIAccelerometer(3) UIActionSheet(1) UIActivityIndicator(1) UIActivityIndicatorView(3) UIActivityViewController(1) UIAlertView(5) UIApplication(7) UIButton(4) UIColor(3) UIDatePicker(5) UIDevice(6) UIDeviceOrientation(1) UIEvent(6) UIImage(15) UIImagePickerController(4) UIImageView(12) UIKit(58) UILabel(7) UINavigationBar(4) UINavigationItem(1) UIPasteboard(4) UIScreen(1) UIScrollBar(1) UIScrollView(1) UISlider(3) UIStoryboardSegue(3) UISwitch(1) UITabBar(3) UITableView(4) UITextField(2) UIView(11) UIViewAnimationTransition(1) UIViewController(4) UIWebView(5) WindowManager(1) Xcode(48) Xcode 5(8) Xcode 5.1(2)