Ios 从其他视图返回时如何存储按钮和文本字段值
我的应用程序中有三个视图。在第一个视图中,有三个Ios 从其他视图返回时如何存储按钮和文本字段值,ios,objective-c,iphone,xcode,Ios,Objective C,Iphone,Xcode,我的应用程序中有三个视图。在第一个视图中,有三个按钮和两个文本字段。当我按下任何按钮时,tableview中的tableview项将是按钮标题,而textfield中的值将来自键盘 当我跳转到第二个视图执行我的工作并返回到第一个视图时,我从tableview中选择的按钮标题不会出现在按钮上以及文本字段中 那么,如何设置按钮标题和文本字段值呢。我不想将值从一个视图传递到第二个视图。您可以将字符串保存在NSUserDefaults中。调用didSelectRowAtIndexPath时,按如下方式保
按钮
和两个文本字段
。当我按下任何按钮时,tableview
中的tableview
项将是按钮标题,而textfield
中的值将来自键盘
当我跳转到第二个视图执行我的工作并返回到第一个视图时,我从tableview
中选择的按钮标题不会出现在按钮上以及文本字段中
那么,如何设置按钮
标题和文本字段
值呢。我不想将值从一个视图传递到第二个视图。您可以将字符串保存在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];
}
并自行设置静态按钮标题。使用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;
// 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];
}
第一次检查NSUserdefaults值第一次不为空。使用NSUserdefaults
存储按钮和文本字段的值
-(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
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;
// 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];
}
如果您想存储标题作为临时用途,则无需使用NSUserDefaults
。NSUserDefault用于存储永久平均值,直到用户删除应用程序。如果您想在用户终止并重新打开应用程序后获得标题,则仅使用NSUserDefaults
您可以在AppDelegate中定义NSString并使用它,也可以在全局类中定义NSString
在AppDelegate中
@property(nonatomic,Strong)NSString *strTitle;
使用下面的代码存储此值
AppDelegate *appDel = (AppDelegate *)[[UIApplication sharedApplication]delegate];
appDel.strTitle = @"your title";
它将存储值,直到用户杀死你的应用程序。所以根据你的需要使用。你将值存储在nsuserdefault中,并在ViewWillAspect method@bhavinramani中设置按钮标题