У меня есть два ViewController (ViewController, ResultViewController).ios Навигация не может передать значение для следующего Viewcontroller, когда я снова popViewController
В окне ViewController есть три кнопки, и в ResultViewController есть кнопка возврата.
В ResultViewController я хочу получить значение из передачи ViewController.
Так что я добавить следующий код в ResultViewController
@interface ResultViewController : UIViewController
- (IBAction)backEvent:(id)sender;
@property (weak, nonatomic) IBOutlet UILabel *resultLb;
@property (strong, nonatomic) NSString *selectedVal;
@end
.m
- (void)viewDidLoad {
[super viewDidLoad];
[self.navigationController setNavigationBarHidden:YES animated:NO];
self.resultLb.text = self.selectedVal;
}
- (IBAction)backEvent:(id)sender {
[self.navigationController popViewControllerAnimated:NO];
}
В ViewController есть три кнопки действия:
- (void)viewDidLoad {
[super viewDidLoad];
[self.navigationController setNavigationBarHidden:YES animated:NO];
rvc = [self.storyboard instantiateViewControllerWithIdentifier:@"ResultViewController"];
}
- (IBAction)passAEvent:(id)sender {
rvc.selectedVal = @"A";
[self.navigationController pushViewController:rvc animated:NO];
}
- (IBAction)passBEvent:(id)sender {
rvc.selectedVal = @"B";
[self.navigationController pushViewController:rvc animated:NO];
}
- (IBAction)passCEvent:(id)sender {
rvc.selectedVal = @"C";
[self.navigationController pushViewController:rvc animated:NO];
}
Когда я первый нажмите кнопку A, которая может скорректировать значение «A» в ResultViewController.
Но когда я нажимаю кнопку «Назад» в ResultViewController.
Затем нажмите действие кнопки B или C, которые все еще передают значение «A».
Я вижу журнал, который не входил в событие B, C.
Я пытаюсь запустить программу снова, когда я нажимаю первую кнопку с кнопкой B, правильно вводит и передает значение «B» в ResultViewController.
Но когда я нажимаю кнопку «Назад», затем нажмите кнопку «А» или «С», это неверное значение в ResultViewController. Оно все еще показывает значение «B».
Я не знаю почему? как я могу решить проблему, если не использовать делегат или уведомлять?
спасибо.
----- редактировать ----
К @Gaurav Singh
Я не найти вариант о неживой.
Спасибо, Джон Роджерс. Метод Ok ~ – dickfala
Если вы нашли свое решение, отметьте правильный ответ. –