1.
ViewControllerA
之前,如何委託方法運行發送ViewControllerB
與代表的關鍵viewDidLoad中2.當
ViewControllerB
被加載鍵值是正確的,但我需要使用密鑰viewDidLoad
所以問題是:如何可以先委託方法運行,所以我可以在viewDidLoad
使用鑰匙?或:有沒有使用這個鍵的同時viewDidLoad
如果不能讓代表0之前運行方式?
1. ViewControllerA
之前,如何委託方法運行發送ViewControllerB
與代表的關鍵viewDidLoad中
2.當ViewControllerB
被加載鍵值是正確的,但我需要使用密鑰viewDidLoad
所以問題是:如何可以先委託方法運行,所以我可以在viewDidLoad
使用鑰匙?或:有沒有使用這個鍵的同時viewDidLoad
如果不能讓代表0之前運行方式?
爲什麼你不能做這樣的事情:
可以說,你的密鑰是一個字符串,在你ViewControllerB.h
1)添加
@property (nonatomic, copy) NSString *keyFromParent;
- (id)initWithNibName:(NSString *)nibNameOrNil WithKey:(NSString *)key bundle:(NSBundle *)nibBundleOrNil;
2)在您的ViewControllerB.m替換您的initWithNibName方法與
- (id)initWithNibName:(NSString *)nibNameOrNil WithKey:(NSString *)key bundle:(NSBundle *)nibBundleOrNil{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.keyFromParent = key;
}
return self;
}
3)當你從ViewControllerA呈現ViewControllerB像這樣做,
ViewControllerB *controller = [[ViewControllerB alloc] initWithNibName:@"ViewControllerB" WithKey:KEY_FROM_DELEGATE bundle:nil];
[self presentViewController:controller animated:YES completion:nil];
4)現在你可以使用keyFromParent這是從ViewControllerA傳遞的值在viewDidLoad方法ViewControllerB
希望這個答案能幫助你!
Thx,這真的很有幫助! – user2261777
不客氣! – Ushan87
在ViewControllerB
像initWithNibName:bundle:key:delegate:
東西寫一個初始化器方法類似如下所示
- (id) initWithNibName:(NSString *)nibNameOrNil
bundle:(NSBundle *)nibBundleOrNil
key:(NSString*)aKey
delegate:(id) aDelegate
{
self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if(self) {
// Save aDelegate and aKey as properties
}
return self;
}
初始化後的viewDidLoad中將調用,您可以使用這些屬性值。
乾杯!
Amar。
如果您只是想從ViewControllerA向ViewControllerA發送一個變量值,然後在具有readWrite權限的ViewControllerB中創建該變量的屬性,並在導航到ViewControllerB之前將其分配給ViewControllerA。
如果字符串變量傳遞 寫在viewControllerB.h
@property (nonatomic, retain) NSString *variableName;
和ViewControllerA當你導航到viewControllerB
viewControllerB *obj = [[viewControllerB alloc] initWithNibName:@"viewControllerB" bundle:nil];
obj.variableName = @"Your Value";
[self.navigationController pushViewController:obj animated:YES];
[obj release];
你是如何發送委託鍵..? – Bonnie
爲了傳遞密鑰,您正在調用VCA中的任何方法,或者只是從VCA中設置VCB中的任何屬性? –
從VCA中設置VCB中的屬性,並且需要在VCB的ViewDidLoad方法中使用它@Anil – user2261777