visual studio microsoft espaƱol descargar community ios objective-c iphone delegates

ios - microsoft - visual studio installer



Objetivo c: pasar el valor de la cadena utilizando delegado (2)

Supongo que no configuró el delegado.

Establecerlo así:

GreenViewController *myVc = [[GreenViewController alloc] init]; myVc.delegate = self;

¡Pon esto en tu vista de control de vista sí carga el método!

Quiero pasar UITextField * nameText de GreenViewController a UILabel * nameValue en ViewController usando delegate.

Hice delegate, se llama al método onSave en ViewController pero la pantalla no retrocede y no se pasa el nombre. ¿Cuál es el problema? Aquí están los archivos de cabecera e impelentación:

GreenViewController.h

#import <UIKit/UIKit.h> @protocol GreenViewDelegate <NSObject> -(void)onSave:(NSString*)nameValue; @end @interface GreenViewController : UIViewController @property id<GreenViewDelegate> delegate; @property (nonatomic) NSString* sliderValuePassed; @property (weak, nonatomic) IBOutlet UIButton *Next; @property (weak, nonatomic) IBOutlet UIButton *Save; @property (weak, nonatomic) IBOutlet UIButton *Back; @property (weak, nonatomic) IBOutlet UILabel *sliderTextValue; @property (weak, nonatomic) IBOutlet UITextField *NameText; - (IBAction)save:(id)sender; @end

GreenViewController.m

#import "GreenViewController.h" #import "ViewController.h" @interface GreenViewController () @end @implementation GreenViewController - (void)viewDidLoad { [super viewDidLoad]; self.sliderTextValue.text = self.sliderValuePassed; } - (IBAction)back:(id)sender { [self dismissViewControllerAnimated:YES completion:nil]; } - (IBAction)save:(id)sender { [self.delegate onSave:self.NameText.text]; [self.navigationController popViewControllerAnimated:YES]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end

ViewController.h

#import <UIKit/UIKit.h> #import "GreenViewController.h" @interface ViewController : UIViewController <GreenViewDelegate> @property (weak, nonatomic) IBOutlet UISlider *slider; @property (weak, nonatomic) IBOutlet UILabel *sliderTextValue; @property (weak, nonatomic) IBOutlet UIButton *EnterName; @property (weak, nonatomic) IBOutlet UILabel *NameValue; @property (weak, nonatomic) IBOutlet UIButton *LikeIOS; @property (weak, nonatomic) IBOutlet UISwitch *CheckboxIOS; @end

ViewController.m

#import "ViewController.h" #import "RedViewController.h" #import "GreenViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.sliderTextValue.text = [NSString stringWithFormat:@"Slider value = %d",(int)self.slider.value]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"yellowToGreen"]){ GreenViewController* gVC = segue.destinationViewController; gVC.sliderValuePassed = [NSString stringWithFormat:@"Slider value = %d",(int)self.slider.value]; gVC.delegate = self; }else if([segue.identifier isEqualToString:@"yellowToRed"]){ RedViewController* rVC = segue.destinationViewController; rVC.sliderValuePassed = [NSString stringWithFormat:@"Slider value = %d",(int)self.slider.value]; rVC.CheckboxIOS = self.CheckboxIOS; } } - (IBAction)sliderChangeValue:(id)sender { int sliderVal = self.slider.value; self.sliderTextValue.text = [NSString stringWithFormat:@"Slider value = %d",sliderVal]; } -(void)onSave:(NSString*)nameValue{ NSLog(@"onSave in father controller"); self.NameValue.text = [NSString stringWithFormat:@"Name = %@",nameValue]; } @end


intente con GreenViewController.h:

@property (nonatomic, assign) id<GreenViewDelegate> delegate;

y GreenViewController.m:

- (IBAction)save:(id)sender { [_delegate onSave:self.NameText.text]; [self.navigationController popViewControllerAnimated:YES]; }

ViewController. * Parece estar bien