Quando si spinge un viewcontroller, come faccio a passare anche i dati con esso (come "asdf": 123)? Si suppone di aggiungere oggetti a un NSBundle?iOS - passaggio di dati al controller di vista spinto
6
A
risposta
16
MyViewController * myVC = [[MyViewController alloc] initWithNibName:nil bundle:nil];
myVC.someProperty = someValue; // Pass your data here
[self.navigationController pushViewController:myVC animated:YES];
E nella classe MyViewController
:
.h
@interface MyViewController : UIViewController
@property (nonatomic, strong) NSString * someProperty;
@end
.m
@implementation MyViewController
- (void)viewDidLoad {
[super viewDidLoad];
// your data has been set
// self.someProperty is equal to "some value"
}
1
Non credo che sia possibile, ma ovviamente è possibile aggiungere proprietà o metodi rilevanti al proprio classe ViewController e utilizzarli prima di inviarlo.
+1
Sconcertato dai downvotes, come quello che ho scritto è esattamente ciò che la risposta accettata fa nel codice ... – Clafou
0
No. È possibile equiparare NSBundle
con Android Bundle
, ma non sono correlate e non eseguono attività simili. Clafou ha ragione a suggerire il passaggio dei dati tramite metodi e proprietà.
o cosa fai? – KaiserJohaan