一個popover的UIViewController與主UIViewController之間的資料傳輸
實作如下
1. 開啓一個專案
2. 在Storyboard上加上一個新的UIViewController作為popover,並在兩邊加上一個TextFiled作為資料輸入,然後用button加segue連結成popover顯示,popover segue的ID設為popSeg
3. 加上新的檔案給popover的UIViewController使用
4. 在mainViewController.h加上Button及TextField的註冊
#import <UIKit/UIKit.h>
#import "popViewController.h"
@interface mainViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIButton *popButton;
@property (weak, nonatomic) IBOutlet UITextField *mainTextField;
@end
5. 在mainViewController.m加上控制傳輸的程式碼
#import "mainViewController.h"
@interface mainViewController ()
@end
@implementation mainViewController
@synthesize popButton, mainTextField;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"popSeg"]){
UIStoryboardPopoverSegue *popoverSegue =(UIStoryboardPopoverSegue *)segue;
popoverSegue.popoverController.delegate = self; //popover 資料傳輸的重點設定
popViewController *editorVC = segue.destinationViewController;
editorVC.dataTextField.text = self.mainTextField.text;
}
}
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
self.mainTextField.text = ((popViewController *) popoverController.contentViewController).dataTextField.text;
}
@end
6. 在popViewController.h加上TextField的註冊,popViewController.m不用加任何程式碼
#import <UIKit/UIKit.h>
#import "mainViewController.h"
@interface popViewController : UIViewController
@property (weak, nonatomic) IBOutlet UITextField *dataTextField;
@end
7. 執行結果







沒有留言:
張貼留言