受け入れられた回答の実装方法が不明な人は、ここをクリックしてくださいコード例をより明確に説明する方法 "have a pointer to the navigation controller"。次のコードは、AAA(AAAViewController)からNSStringをCCC(CCCViewController)に、Segueの識別子 "ToCCC"とともに渡します。
1)foo
へのポインタをCCCViewController.h
に作成します。 AAAViewController.m
で
// CCCViewController.h
#import <UIKit/UIKit.h>
@interface CCCViewController : UITableViewController
@property (strong, nonatomic) NSString *foo;
@end
2)は、()ナビゲーション・コントローラを介して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)は、例えばCCCViewController.m
でfoo
(コンソールにそれをログ)で何かをします。
// CCCViewController.m
#import "CCCViewController.h"
@implementation CCCViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Log foo to the console.
NSLog(@"%@", _foo);
}
@end
出典
2013-08-28 19:15:20
JWK
なぜAAAとCCCの間に余分なナビゲーションコントローラがありますか?なぜAAAからCCCに直接接続するのはなぜですか? – Gobot