xcodeが生成するsenderとは

xcodeで開発していると、senderという言葉がでてきます。

 

下記はストーリーボードから〜.hのインターフェースファイルにスイッチのパーツのアクション定義を追加した際に自動生成されます。

 

 

- (IBAction)switchChange:(id)sender; // switchChangeは自分でつけた名前

 

f:id:moge_liverpool:20130502215456j:plain

 

 

この自動的にできあがるsenderにはアクションの値が入ってきます。

利用方法は下記を参考にしてください。

 

--------------------------------------------------------

// スイッチ変更
- (IBAction)switchChange:(id)sender {
    UISwitch *sw = (UISwitch *)sender;
    if(sw.on){
        self.helloLabel.text=@"Switch:ON";
    }else{
        self.helloLabel.text=@"Switch:OFF";
    }
}

--------------------------------------------------------

 

sender の値をキャストします。

キャストした値にはアクションの値のONかOFFが入ってきます。

その値を見てONかOFFかをテキストでだしわけています。

 

senderとは「アクションの値」が入っているオブジェクトというわけです。

 

 

 

@propertyの正体

アイフォンアプリ開発をしていると、@propertyという記載をよくみる。

 

------------------------------------------------------------------------------------------------

@interface ViewController :  UIViewController<UIActionSheetDelegate,UIImagePickerControllerDelegate,   UINavigationControllerDelegate>{

 }

 @property (weak, nonatomic) IBOutlet UIToolbar *toolBar;

@end

-------------------------------------------------------------------------------------------------

 

ふとなんだろうと思ったため、調べてみた。

 

<Objective-C逆引きハンドブックより>

f:id:moge_liverpool:20130502210700j:plain

どうやらJavaでいうセッターとゲッターを自動的に作ってくれますよ。

ということらしい。

 

〜.h形式のインターフェースファイルで定義しておくと

〜.m形式の実装ファイル内でセッターゲッターがいらないのだ。

 

改訂2版 Objective-C逆引きハンドブック

改訂2版 Objective-C逆引きハンドブック

同じストーリーボードにあるほかのView Controllerのインスタンスを生成

あたりまえ体操。

いいともにあたりまえ体操の声の人がでていた。

 

あたりまえiPhone〜♪

表題の件はー、こうやる♪

- (IBAction)presentSpecialViewController:(id)sender {
    UIStoryboard *storyboard = self.storyboard;
    SpecialViewController *svc = [storyboard
instantiateViewControllerWithIdentifier:@"SpecialViewController"];
// 新しいView Controllerに対して設定を施す
[self presentViewController:svc animated:YES completion:nil];
} 

あたりまえiPhone♪

 

[参照]

iOS View Controller プログラミングガイド

https://developer.apple.com/jp/devcenter/ios/library/documentation/ViewControllerPGforiOS.pdf