我试图将一个UIViewController
(“MainVC”)的变量值(在我的情况下为简单整数)传递给另一个(“ChargeVC”)。
我很难让它正常工作,花了一天的时间,仔细阅读可用的答案后,我现在开设了一个帐户,因此我需要进行一些更改以获得适合我的答案。我发现“This”很有帮助,并认为它应该可以工作,但对我而言却不行。
我显然是“xcode”和“Objective-C”的新手,但是我具有扎实的“PHP”和“Javascript”知识。
这是我的代码:
MainVC.m
NSUInteger index = 4; //will be an index ID used for accessing a table row
ChargeVC *myChargeViewCont = [[ChargeVC alloc] init];
myChargeViewCont.title = @"Charge User";
myChargeViewCont.personIndex = index;
NSLog(@"person index MainVC: %d", [myChargeViewCont personIndex]);
[self.navigationController pushViewController:myChargeViewCont animated:YES];
ChargeVC.h
@interface ChargeVC : UIViewController {
NSUInteger personIndex;
}
@property (nonatomic) NSUInteger personIndex;
@end
ChargeVC.m
#import "ChargeVC.h"
@implementation ChargeVC
@synthesize personIndex;
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"person index ChargeVC: %d", personIndex);
}
作为检查,我尝试在“MainVC”中一次输出值,在“ChargeVC”中一次输出值。这是日志:
2014-05-11 12:17:51.242 Kunden[58238:60b] person index ChargeVC: 0
2014-05-11 12:17:51.244 Kunden[58238:60b] person index MainVC: 4
我在这里完全错过了什么吗?任何帮助表示赞赏。
更新
我发现了错误,并发布了答案进行解释。如果您知道那里到底发生了什么,我会很想知道。
最佳答案
您不需要像这样来初始化它
@interface ChargeVC : UIViewController {
NSUInteger personIndex;
}
@property (nonatomic) NSUInteger personIndex;
@end
只是做
@interface ChargeVC : UIViewController
@property NSUInteger personIndex;
@end
足够了。您可以通过执行
self.personIndex
在.m中访问它们。另外,除非您了解非原子性物质或将其用于生产,否则请勿打扰非原子性物质。这些东西令人困惑,如果您正在学习,以后再学习它会更容易。 (我假设是业余爱好项目,如果这是错误的,则表示歉意)。否则,您的代码对我来说似乎是正确的。