Daten an vorherigen Viewcontroller zurückgeben
Ich versuche, Daten ZURÜCK an den vorherigen viewController zu übergeben.
Weiß jemand, wie man Daten von ViewController B an ViewController A zurückgibt? Ich möchte also, dass ein String von BIDAddTypeOfDealViewController zu BIDDCCreateViewController wechselt. Ein Benutzer bearbeitet viewController B und ich möchte diese bearbeiteten Daten wieder in ViewController A, wo ich sie dann verwende.
Ich benutze den Abschnitt 'Daten zurückgeben' vondiese Antwort. Wie meins sich unterscheidet: Punkt 3 und 6 erwähnen nur, wann Ansichten auftauchen, also habe ich diesen Code in viewWillDisappear eingefügt. Ich denke das ist richtig? Auch bei Punkt 6 habe ich nicht mit Feder initialisiert, da diese alt ist. Ich benutze Storyboards. Und ich habe diese letzte Zeile nicht hinzugefügt, da ich nicht glaube, dass ich sie pushen müsste. Ein Knopfdruck auf meinem Storyboard bringt mich schon weiter.
Ich denke, das Problem kann in BIDDCCreateViewController auftreten. Ich habe die Methode, kann sie aber nicht ausführen. Um eine Methode auszuführen, sollte sie auf [self method] gehen. Das kann ich nicht. Nun, das ist genau das, was ich vermute.
Es kompiliert und läuft gut, es wird nur nichts protokolliert, daher weiß ich nicht, ob es funktioniert.
UPDATE: Ich kann die Methode 'sendDataToA' nicht ausführen.
#import <UIKit/UIKit.h>
#import "BIDAddTypeOfDealViewController.h"
@interface BIDDCCreateViewController : UIViewController
@property (strong, nonatomic) NSString *placeId;
- (IBAction)gotoBViewController:(id)sender;
@end
#import "BIDDCCreateViewController.h"
#import "BIDAddTypeOfDealViewController.h"
@implementation BIDDCCreateViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
NSLog(@"SUCCESSFULLY PASSED PLACE ID: %@", self.placeId);
}
-(void)sendDataToA:(NSString *)myStringData
{
NSLog(@"Inside sendDataToA");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Your string Data Showing" message:myStringData delegate:self cancelButtonTitle:@"Ok " otherButtonTitles:nil];
[alert show];
}
- (IBAction)gotoBViewController:(id)sender {
NSLog(@"pressed");
BIDAddTypeOfDealViewController *bidAddType = [[BIDAddTypeOfDealViewController alloc]init];
bidAddType.delegate = self;
}
@end
@protocol senddataProtocol <NSObject>
-(void)sendDataToA:(NSString *)myStringData;
@end
#import <UIKit/UIKit.h>
@interface BIDAddTypeOfDealViewController : UIViewController <UITextFieldDelegate>//Using this delegate for data a user inputs
@property(nonatomic,assign)id delegate;
//other textfield outlets not relevant
- (IBAction)chooseDiscountDeal:(id)sender;
@end
#import "BIDAddTypeOfDealViewController.h"
@interface BIDAddTypeOfDealViewController ()
@end
@implementation BIDAddTypeOfDealViewController
@synthesize delegate;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
}
-(void)viewWillDisappear:(BOOL)animated
{
[delegate sendDataToA:@"Apple"];
}
@end