Containerとの値やり取り方法
3950 ワード
ViewControllerとCotainerViewの値やり取り方法に関して考察します。
完全に分離して表示や処理をする場合は問題ないですが、連携して操作する場合は値や状態のやり取りが必要になります。そこで以下のような方法でやり取りを実装しました。
- ContainerViewでdelegateを作成(SubViewDelegateとします)
- MainViewControllerでSubViewDelegateを実装します
そうすると、値のやり取りが可能です。
SubViewController.h
@protocol SubViewController
@required
- (void)testValue:(NSString *)testPhrase;
@end
@interface SubViewController : UIViewController
// ------- delegate --------
@property (weak, nonatomic) id<SubViewController> delegate;
...
@end
MainViewController.m
@interface MainViewController ()
<
SubViewController
>
@end
@implementation MainViewController
- (void)testValue:(NSString *)testPhrase{
...
}
@end
ここではまったのがdelegate=selfをどこに書くかです。
自分の思うような動作は、viewDidLoadに書いた場合実現できませんでした。。。
そこで、Storyboard上でContainerとのsegueにid名をつけて
MainViewController.m
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"subViewSegue"]) {
SubViewController *subView = segue.destinationViewController;
subView.delegate = self;
}
}
とするとうまく動作しました。
Author And Source
この問題について(Containerとの値やり取り方法), 我々は、より多くの情報をここで見つけました https://qiita.com/BOPsemi/items/dd65b2b7cd83ec1e82b9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .