Для тех, кто не знает, как реализовать принятый ответ, ниже приведен пример кода, который более четко объясняет, как « имеет указатель на контроллер навигации » Следующий код передает строку NSString из AAA (AAAViewController) в CCC (CCCViewController) с идентификатором «ToCCC» для перехода.
1) Создать указатель на foo
в CCCViewController.h
.
// CCCViewController.h
#import <UIKit/UIKit.h>
@interface CCCViewController : UITableViewController
@property (strong, nonatomic) NSString *foo;
@end
2) В AAAViewController.m
создайте указатель на CCCViewController (через контроллер навигации) и затем установите foo
.
// AAAViewController.m
#import "AAAViewController.h"
#import "CCCViewController.h" // Note the import statement for CCC.
@implementation AAAViewController
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString: @"ToCCC"])
{
CCCViewController *ccc = [[segue.destinationViewController viewControllers] objectAtIndex: 0];
ccc.foo = @"A string passed from AAA";
}
}
@end
3) Сделайте что-нибудь с foo
в CCCViewController.m
(например, войдите в консоль).
// CCCViewController.m
#import "CCCViewController.h"
@implementation CCCViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Log foo to the console.
NSLog(@"%@", _foo);
}
@end