我正在尝试构建一个由一组值组成的计算器,这些值是常量,一些值是变量。
首先从UIButton启动计算器,我想使用IBAction将常量值数存储在UIButton中。然后通过触摸按钮将启动计算器,并在UITextField上显示常量值。
我的问题是,我可以输入什么代码来将常量值存储在IBAction的代码中,并将其显示在下一个nib文件UITextField上。以下是我目前的代码。
非常感谢。
- (IBAction)runningtrack:(id)sender {
int length = 400;
int width = 30;
track *myView3 =[[track alloc] initWithNibName:nil bundle:nil];
[myView3 setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentModalViewController:myView3 animated:YES];
}
答案 0 :(得分:2)
您需要在track
类中声明属性或制作自定义初始化方法。
属性
track *myView3 =[[track alloc] initWithNibName:nil bundle:nil];
track.valueForTextField = width; //valueForTextField is a int property in track class
自定义初始化:
track *myView3 =[[track alloc] initWithNibName:nil bundle:nil andMyValue:width];
答案 1 :(得分:1)
哟可以使用委托方法或轻松(不是首选)我们NSUSerDefaults。如果你使用NSUserDefaults,你的代码将是这样的。
- (IBAction)runningtrack:(id)sender {
int length = 400;
int width = 30;
NSNumber *theNumber = [NSNumber numberWithInt:<lenght&with or which int value you will save>];//NSUSerDefaults saves property list objects, so convert int to NSNumber
NSUserDefaults *savedValue=[NSUserDefaults standartuserdefault];
[savedValue setObject:theNumber forKey:@"myConst"];
track *myView3 =[[track alloc] initWithNibName:nil bundle:nil];// by the way i don't think initWithNibName:nil give a proper response, it must crash
[myView3 setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentModalViewController:myView3 animated:YES];
}
在另一个类(具有.xib,你想显示tat值)
NSNumber *yourValue=[[NSUserDefaults standartuserdefault] objectForKey:@"myConst"];
UITextView *yourTextView=...
yourTextView.text=yourValue;
答案 2 :(得分:1)
您需要编写以下自定义初始化方法。
track *myView3 =[[track alloc] initWithNibName:nil bundle:nil customLength:400 customWidth:300];
在使用上述代码之前,您必须按照以下步骤操作。
在track.h头文件中,添加自定义init方法声明。
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle customLength:(int) customWidth:(int);
在track.m文件中,添加自定义方法定义。
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle customLength:(int) customWidth:(int) {
/*You can use the customLength and customWidth here */}