使用导航弹出将数据传输到另一个控制器



我在视图控制器B中使用文本视图,同时编辑文本视图,当用户从导航控制器点击后退按钮时,视图应该弹出到视图控制器A

我的代码是

-(void)textFieldDidBeginEditing:(UITextField *)textField
{
     edit_TEXT = textField.text;
}
-(void) back;
{
   employer_REG_NEW *empSIGHN_UPVC = [employer_REG_NEW alloc] ;
   empSIGHN_UPVC.view_LINE = edit_TEXT;
}

我没有在视图控制器A中获取字符串

1) @IBOutlet weak var txtName: UITextField! @IBOutlet weak var lblGetValue1: UILabel!

var str2 = String()
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(true)
    self.lblGetValue1.text = str2
}
@IBAction func btnPassValueAction(_ sender: Any) {
let passData = storyboard?.instantiateViewController(withIdentifier: "SecondVC") as! SecondVC

passData.delegate = self passData.str = txtName.text!

self.navigationController?.pushViewController(passData, animated: true)
}
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

2)@IBOutlet weak var txtPassValue: UITextField! @IBOutlet weak var lblGetValue: UILabel!

var str = String()
//var delegate : myProtocol?
override func viewDidLoad() {
    super.viewDidLoad()
    self.lblGetValue.text = str
}
@IBAction func btnSendDataAction(_ sender: Any) {
    for viewController: UIViewController in (self.navigationController?.viewControllers)!{
        if (viewController is ViewController){
            let filterData: ViewController = (viewController as? ViewController)!
            filterData.str2 = txtPassValue.text!
              self.navigationController?.popToViewController(filterData, animated: true)
        }
    }

in viewcontrollerB.h create Protocol

@protocol testDelegate <NSObject>
-(void)sendText:(NSString *)strText;
@end 

声明属性

@property (strong,nonatomic)id<testDelegate>delegate;

in viewcontrollerB.m 从哪里 u 将文本传递到后台 viewcontrollerA 写下面

[self.delegate sendText:@"Hello"]

在视图控制器 A 中

添加委托方法和

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
viewcontrollerB *obj = segue.destinationViewController;
obj.delegate = self;
}

和声明委托方法

你得到的地方发送文本。

阅读此链接的完整详细信息 http://www.tutorialspoint.com/ios/ios_delegates.htm

最新更新