iOSã¢ããªã§ç»é¢é·ç§»ï¼ã¢ã¼ãã«ãªãã¥ã¼ã§ããªã²ã¼ãï¼
Googleå çã«ãiOS ç»é¢é·ç§»ãã¨ããå ´åãæå¾ ãã¦ããçãã«ã¯ãã©ãçããªãã
ããã¯å¤åããã¢ã¼ãã«ã§ãã¥ã¼ãéããã¨ãããã¨ã«ãªããä¸è¦§ããæç´°ãã¿ãããããåãæ¿ããã®ã¯ããMaster-Detailãã¨ãããããUINavigationç³»ã®è©±ã§ãå¥ã®è©±ãå¥ã®è©±ãªã®ã ãï¼ï¼ãããã§ã¯ãã¢ã¼ãã«ããªãã¤ã«ã¤ãã¦ã¡ã¢ã£ã¦ããã
ã¢ã¼ãã«ã§ãã¥ã¼ãéãæ³å®ä¾ã¢ããª
- ã¨ããç»é¢Aã«ãã¿ã³ããã
- ãã¿ã³ãã¿ãããããå¥ã®ç»é¢Bããã´ããã¨ã§ã¦ãã
- ç»é¢Bã«ã¯ãéãããçãªãã¿ã³ããã
- ç»é¢Bã®ãéããããæ¼ããããç»é¢Bãã²ã£ããã§ç»é¢Aã«æ»ã
ããã ãã®ãã¨ãããããã®ã ãâ¦ï¼ï¼
大åå
- UIViewControllerã®presentModalViewController ã§éã
- UIViewControllerã®dismissModalViewControllerAnimated ã§éãã
ã ãããã
- ç»é¢Bãéãã¨ãã¯ãUIViewControllerã®presentModalViewControllerã使ã
- ç»é¢Bãéããã¨ãã¯ãç»é¢Bã§dismissModalViewControllerAnimatedã¯ããªã
ã ããã ã
ããã«delegateã¨ããèãæ¹ãã§ã¦ããããããªåããã©ããã¨ããããããã¨ãããããããªãããããç»é¢Bã§å ¥åããå¤ãç»é¢Aã§ä½¿ãããã¨ããããï¼ä¿åãã¡ããã¨ããæããããã©ï¼ããªã²ã¼ãã使ã£ãã»ããããã®ãããããã
ãããã
- ç»é¢Bã®ãããã¼ãã¡ã¤ã«ã«ãç»é¢Bããªã²ã¼ããã¤ããã¡ã½ãããå®ç¾©ãããããããã£ã«èªåã®ããªã²ã¼ãã追å ããã
- ç»é¢Aã¯ç»é¢Bããªã²ã¼ãã®ã¡ã½ãããå®è£ ãããããã§ç»é¢Bãéããè¨è¿°ãããã
- ç»é¢Bãéãã¨ãã¯ãUIViewControllerã®presentModalViewControllerã使ããããã®ã¨ãã«ãç»é¢Bã®ããªã²ã¼ãã«ç»é¢Aã¯selfãè¨å®ããã
- ç»é¢Bãéãããç®æã§ãç»é¢Bã¯èªèº«ã®ããªã²ã¼ãã®ã¡ã½ãããå®è¡ãããããã¨çµæçã«ãç»é¢Aã®ã¡ã½ãããå®è¡ãããã®ã§ç»é¢Bã¯éããããã
ãå®è£
ããè¨å®ããã¡ã½ãããã¨ãè¨èããã£ã¦ããã®ãããããªãã
ããå¿ããã®ã¯ããç»é¢Bã®ããªã²ã¼ãã«ç»é¢Aã¯selfãè¨å®ãããã¨ããããããå¿ãã¦ããã¨ãã¹ã«ã¹ã«ãªã«ãããããªãã
ç»é¢BãInfoViewControllerã¨ãã¾ãã¦ãInfoViewController.hã®ä¸èº«
#import <UIKit/UIKit.h> @class InfoViewController;//ãããã³ã«ã«ããã£ã¦ãããããã«è¦ãããã // ããªã²ã¼ã @protocol InfoViewControllerDelegate <NSObject> -(void)infoViewController:(InfoViewController*)infoViewController okButtonTapped:(id)sender; @end // æ¬ä½ @interface InfoViewController : UIViewController //ããªã²ã¼ãç¨ retainãããªãã¦assign //@property(nonatomic,retain)id<InfoViewControllerDelegate> delegate; @property(nonatomic,assign)id<InfoViewControllerDelegate> delegate; // ç»é¢Bã®è¦ãç®ä¸ã®éãããã¿ã³ç¨ -(IBAction)okButtonTapped:(id)sender; @end
InfoViewController.mï¼ä¸é¨ï¼
@synthesize delegate; //ãããããå¿ããããã®è§£æ¾ã«ã¤ãã¦ã¯ã¾ãããããããªãããARCåãªãnilã¨ãããã¡ã¾ã£ã¦çµãã£ã¦ããã®ãï¼ãªï¼ ARCã ã¨ããã«ããããã«ããã -(void)okButtonTapped:(id)sender{ NSLog(@"InfoViewControllerokButtonTapped..."); // [self dismissModalViewControllerAnimated:YES]; //ããã§ãããæ¸ãã¨éãããã©ãããªã // ããªã²ã¼ãã®ã¡ã½ãããå®è¡ãã [self.delegate infoViewController:self okButtonTapped:sender]; }
ç»é¢Aã«ãããViewController.h
#import <UIKit/UIKit.h> // ããªã²ã¼ãã®ããã«ããããã #import "InfoViewController.h" @interface ViewController : UIViewController<InfoViewControllerDelegate> -(IBAction)showInfo:(id)sender; @end
ViewController.mï¼ä¸é¨ï¼
// ç»é¢Bãéã -(void)showInfo:(id)sender{ InfoViewController*infoViewController = [[InfoViewController alloc] initWithNibName:@"InfoViewController" bundle:nil]; // ãããå¿ããã¨ã¹ã«ã¹ã« infoViewController.delegate = self; // ç»é¢Bãéãï¼éãã£ã¦ããã®ãï¼ éããã ãããªãï¼ [self presentModalViewController:infoViewController animated:YES]; } // ããªã²ã¼ãã®ã¡ã½ãã -(void)infoViewController:(InfoViewController *)infoViewController okButtonTapped:(id)sender{ // ããã§éãããã // ãã®selfã¯æè¦çã«ã¯ç»é¢Aã§ã¯ãªãç»é¢Bããªããã¨ããã¨ããªã²ã¼ãã ãã [self dismissModalViewControllerAnimated:YES]; }
ãªãã ãããããã
åç´ã«éããã®ãªããã親ããéãããããã£ã½ããããã