从其他视图返回时如何存储按钮和文本字段值

时间:2015-07-24 05:09:38

标签: ios objective-c iphone xcode

我的应用中有三个视图。在第一个视图中,有三个button和两个textfields。当我按下任意button时,tableview所选项目的tableview下拉列表将是按钮标题,而textfield中的值将来自键盘。

当我跳到第二个视图来执行我的操作并返回到第一个视图时,我从tableview选择的按钮标题不会出现在button标题以及{{1}中}。

那么,如何设置textfields标题和button值。我不想将值从一个视图传递到第二个视图。

4 个答案:

答案 0 :(得分:1)

使用NSUserdefaults存储button & textfield

的值
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

 // Store the data
 [[NSUserDefaults standardUserDefaults] setObject:yourTextfieldName.Text forKey:@"txtNmae"];
[[NSUserDefaults standardUserDefaults] setObject:cell.yourbuttonName.titleLabel.text forKey:@"buttonName"];
 [[NSUserDefaults standardUserDefaults]synchronize];

}

从NSuserdefaults获取数据

// Get the stored data before the view loads

 -(void)viewWillAppear:(BOOL)animated{

[super viewWillAppear:animated];



 NSString * txtName = [[NSUserDefaults standardUserDefaults] objectForKey:@"txtNmae"];
if(txtName)
{
 yourtextField.text= txtName;
 }
else
 {
  yourtextField.text= @"";
 }

  NSString * buttonName = [[NSUserDefaults standardUserDefaults] objectForKey:@"buttonName"];
 if(buttonName)
 {
[yourbuttonName setTitle: buttonName forState:UIControlStateNormal];
 }
else
 {
  [yourbuttonName setTitle: @"as your Wish" forState:UIControlStateNormal];
 }


 // remove the userDefaultValue

 [[NSUserDefaults standardUserDefaults]removeObjectForKey:@"buttonName"];
 [[NSUserDefaults standardUserDefaults]removeObjectForKey:@"txtNmae"];

 [[NSUserDefaults standardUserDefaults]synchronize];

}

答案 1 :(得分:0)

您可以在NSUserDefaults中保存字符串。当调用didSelectRowAtIndexPath时,像这样保存按钮标题

[[NSUserDefaults standardUserDefaults]setObjectForKey:cell.titleLabel.text forKey:@"button_title"];

textField执行相同操作。 像这样设置按钮的标题 并且第一次检查NSUserDefaults是否包含数据,请应用此

    if(![[NSUserDefaults standardUserDefaults]objectForKey:@"button_title"]){
        [self.button setTitle:@"anyString" forState:UIControlStateNormal];
    }
    else
    {
        //set button from user defaults.
NSString *buttonTitle=[[NSUserDefaults standardUserDefaults]valueForKey:@"button_title"];
[self.button setTitle:buttonTitle forState:UIControlStateNormal];
    }

并自行设置静态按钮标题。

答案 2 :(得分:0)

使用NSUserdefaults存储按钮标题&文本字段值为

 NSString *firstName = [firstNameTextField text];
NSString *lastName  = [lastNameTextField text];

 // Store the data
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

[defaults setObject:firstName forKey:@"firstName"];
[defaults setObject:lastName forKey:@"lastname"];

&安培;从NSuserdefaults获取数据

// Get the stored data before the view loads
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSString *firstName = [defaults objectForKey:@"firstName"];
NSString *lastName = [defaults objectForKey:@"lastname"];


// Update the UI elements with the saved data
firstNameTextField.text = firstName;
lastNameTextField.text = lastName;

首先检查NSUserdefaults值是否为第一次为空。

答案 3 :(得分:0)

如果您想为临时目的存储标题,则无需使用NSUserDefaults。 NSUserDefault用于存储值永久均值,直到用户删除应用程序。如果你想在用户杀死后重新打开应用程序,那么只使用NSUserDefaults。

您可以在AppDelegate中定义NSString并使用它,也可以在Global类中定义NSString。

AppDelegate

中的

@property(nonatomic,Strong)NSString *strTitle;

使用以下代码

存储此值
AppDelegate *appDel = (AppDelegate *)[[UIApplication sharedApplication]delegate];
appDel.strTitle = @"your title";

它将存储价值,直到用户杀死你的app.So根据你的需要使用。