好吧,我有一个小程序,它具有以下文件;
- HomeViewController(.H .M的.xib)
- DataViewController(.H .M的.xib)
- 的AppDelegate(.H .M)
- 人(.H .M)[对象]
+支持文件等...
在视图控制器之间共享对象实例
假设我通过HomeViewController中的文本框和其他输入获取用户输入,并将它们设置为Person(年龄,年级等)的实例的属性,我如何从DataViewController访问它们(同一实例)以显示它们?
下面是代码HomeViewController.h片段和.M
.H
@interface HomeViewController : UIViewController {
IBOutlet UIButton *done;
BOOL standardRes;
}
@property (nonatomic) int newAge;
@property (nonatomic) int newGrade;
-(IBAction)doneButtonPressed;
@end
.M
@implementation HomeViewController
@synthesize newAge, newGrade;
-(IBAction)doneButtonPressed{
Person *user = [[Person alloc]init]; //Creating an instance of Person called user
user.age = newAge; //Do I even need this if I use setters and getters in person.m?
user.grade = newGrade; //Do I even need this if I use setters and getters in person.m?
NSLog(@"Age: %i, Grade: %i", user.age, user.grade); //Testing with NSLog
newAge = 175;
[user setAge:(int)newAge]; //Calling setter method for property 'age' in Person.m
DataViewController *vc = [[DataViewController alloc]init];
[self.navigationController pushViewController:vc animated:YES];
}
这里是Person.h和一点点。 m
@interface Person : NSObject {
}
@property (nonatomic, getter = age, setter = setAge:) int age;
@property (nonatomic) int grade;
@end
@implementation Person
@synthesize age, grade;
-(void)setAge: (int) newAge {
age = newAge;
}
-(int)age {
return age;
}
@end
注:
- 使用导航控制器
- iOS 6的
- 的Xcode 4.5.1
+如果您需要任何更多的信息,让我知道! :)
P.S.我有点新的这个东西所以这可能是一个愚蠢的问题;)
我试图左右逢源,但对你HomeViewController.h改了行说有语法错误:“DataViewController”不可见@interface声明的选择“initWithPerson:” – WillB
错字:HomeViewController.m ...对不起:P – WillB
我很抱歉@WillB,我混了文件名。看我的编辑。 – WDUK