将存储在IBAction中的值传递给下一个Nib UITextField。

时间:2012-02-18 16:56:45

标签: iphone ios xcode uibutton uitextfield

我正在尝试构建一个由一组值组成的计算器,这些值是常量,一些值是变量。

首先从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];
    }

3 个答案:

答案 0 :(得分:2)

您需要在track类中声明属性或制作自定义初始化方法。

  1. 属性

    track *myView3 =[[track alloc] initWithNibName:nil bundle:nil];
    track.valueForTextField = width; //valueForTextField is a int property in track class
    
  2. 自定义初始化:

    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];

在使用上述代码之前,您必须按照以下步骤操作。

  1. 在track.h头文件中,添加自定义init方法声明。

    - (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle customLength:(int) customWidth:(int);

  2. 在track.m文件中,添加自定义方法定义。

    - (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle customLength:(int) customWidth:(int) { /*You can use the customLength and customWidth here */}