How to pass data from one view to another view controller in IOS?

£可爱£侵袭症+ 提交于 2019-12-25 03:07:17

问题


I am using Xcode 4.3.1. I have created the UI using Storyboard which has many View Controllers.

Issue

In my app i am using ShakeGesture. While shaking i am doing some operations, its working fine. But, when shaking get stopped i need to pass some values to another View controller to display it. I have seen many post it says how to pass value when button clicked,but no one related with my problem.

It would be great if you solve my issue

My question is

How to pass values from one View to another View controller after shaking get stopped?

I am looking for any examples or tutorials. Much appreciated.

EDIT

Exact function for the above question

I am having an button in First View Controller

When the button triggered it will popup pickerview with some datas. When the user selects it the picker value replaces the button value.

Then Shaking happens when it stopped i have to pass the data to other view controller.

Code

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.subtype == UIEventSubtypeMotionShake)
{
        // I need to pass data here. Thats i am confusing

}

}

Thanks for your help guys


回答1:


Create a segue by ctrl dragging from the first view controller to the second one in the storyboard. Click on the segue and go to the identity inspector (press command-option-3). In the identifier field give it a name, say "Shaking Stopped". Then in your motion ended method use...

 [self performSegueWithIdentifier:@"Shaking Stopped" sender:self];

This will make the view switch to your second one. Then in your prepare for segue change it to this...(of course using your own values)

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"Shaking Stopped"]) {
<The Second View Controller> *controller = segue.destinationViewController
        //change your values in the other view controller here 
        controller.someValue = self.someValue //an example



回答2:


to detect the end of the shake gesture, implement motionEnded:withEvent in your view controller.

- (void) motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
 if (event.type == UIEventSubtypeMotionShake)
 {
   // perform the seque
 }
}

using techniques described above for passing data to this view controller



来源:https://stackoverflow.com/questions/11785092/how-to-pass-data-from-one-view-to-another-view-controller-in-ios

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!