如何将文本字段值从一个视图传递到另一个视图?

时间:2011-11-01 10:46:12

标签: iphone objective-c ios xcode

我正在申请,我有两页:

1页

其中我有1个文本字段和一个提交按钮。

当用户在文本字段中输入值时,在textfiled中输入的值应显示在下一页上。

第2页有  1个文本字段,用于显示在第一页和编辑按钮中输入的值,以便在需要时编辑文本

如果他点击编辑按钮他应该转到第一页,他是否可以看到他输入的值并应该更改

我可以将文本字段值从一个页面传递到另一个页面但在用户单击编辑按钮时无法在第一页上显示相同的值。

以下是我的page1 .h文件

#import <UIKit/UIKit.h>
#import "new.h"

@interface tryViewController : UIViewController {

IBOutlet UITextField *textField;

}

@property(nonatomic,retain)IBOutlet UITextField *textField;

-(IBAction)submit;

@end

以下是我的page1 .m文件:

#import "tryViewController.h"

@implementation tryViewController

@synthesize textField;



- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {

    [theTextField resignFirstResponder];

    return YES;
}


- (void)viewDidUnload {

    // Release any retained subviews of the main view.

    // e.g. self.myOutlet = nil;
}


- (void)dealloc {

    [super dealloc];

}


-(IBAction)submit

{

    new *pg = [new alloc];
    pg.str = textField.text;
    [self .view addSubview:pg.view];
    [self presentModalViewController:pg animated:YES];
}

@end

以下是我的page2 .h文件:

#import <UIKit/UIKit.h>
#import "tryViewController.h"

@interface new : UIViewController {

    IBOutlet UITextField *txtField;

    NSString *str;

}
@property(nonatomic,retain)IBOutlet UITextField *txtField;

@property(nonatomic,retain)NSString *str;

-(IBAction)back;


@end


following is my page2 .m file:


#import "new.h"


@implementation new
@synthesize str;


- (void)viewDidLoad {


    txtField.text = str;

    [super viewDidLoad];

}





- (void)dealloc {
    [super dealloc];
}

-(IBAction)back
{
}


@end

1 个答案:

答案 0 :(得分:0)

你的代码很奇怪。 尝试使用以具有可读名称的大写字母开头的类名。

为什么使用模态视图控制器而不是导航控制器?

试试这种代码:

EditViewController.h

#import <UIKit/UIKit.h>
#import "ShowViewController.h"

@interface EditViewController : UIViewController {
    IBOutlet UITextField *textField;
}

@property(nonatomic,retain)IBOutlet UITextField *textField;

-(IBAction)submit;
@end

EditViewController.m

#import "EditViewController.h"

@implementation EditViewController

@synthesize textField;

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
    [theTextField resignFirstResponder];
    return YES;
}

- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    self.textField = nil;
}

- (void)dealloc {
    [super dealloc];
}

-(IBAction)submit {
    ShowViewController *showViewController = [[ShowViewController alloc] initWithNibName:@"ShowViewController" bundle:nil];
    showViewController.string = textField.text;
    [self.navigationController pushViewController:showViewController animated:YES];
}

@end

ShowViewController.h

#import <UIKit/UIKit.h>

@interface new : ShowViewController {

}

@property(nonatomic,retain)IBOutlet UITextField *txtField;
@property(nonatomic,retain)NSString *string;

-(IBAction)back;

@end

ShowViewController.m

#import "ShowViewController.h"

@implementation ShowViewController
    @synthesize string;

- (void)viewDidLoad {
    [super viewDidLoad];
    txtField.text = string;
}

- (void)dealloc {
    [super dealloc];
}

-(IBAction)back {
    [self.navigationController popViewControllerAnimated:YES];
}

@end

在MainWindow.xib中添加导航控制器(或使用导航控制器向导创建项目。

如果你不想要一个nab吧,只需添加一个

[navigationController setNavigationBarHidden:YES animated:NO];

在你的申请代表中。