xcodeが生成するsenderとは
xcodeで開発していると、senderという言葉がでてきます。
下記はストーリーボードから〜.hのインターフェースファイルにスイッチのパーツのアクション定義を追加した際に自動生成されます。
- (IBAction)switchChange:(id)sender; // switchChangeは自分でつけた名前
この自動的にできあがる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逆引きハンドブックより>
どうやらJavaでいうセッターとゲッターを自動的に作ってくれますよ。
ということらしい。
〜.h形式のインターフェースファイルで定義しておくと
〜.m形式の実装ファイル内でセッターゲッターがいらないのだ。
- 作者: 林晃
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2012/05/26
- メディア: 単行本(ソフトカバー)
- クリック: 6回
- この商品を含むブログ (1件) を見る
同じストーリーボードにあるほかの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