我有一个应用程序,我有一个textview。 textview从第一个视图控制器填充到详细视图控制器,并且根据第一个视图中的哪个图像被点击而不同。用户可以点击它并添加文本然后隐藏键盘。我希望他们能够将添加的文本保存到应用程序中。有人可以帮助我做到这一点或指出我正确的方向。
以下是第一个视图控制器的代码。
- (void) coverflowView:(TKCoverflowView*)coverflowView coverAtIndexWasDoubleTapped:(int)index{
SomeDetailViewController *detailViewController = [[SomeDetailViewController alloc] initWithNibName:@"SomeDetailViewController" bundle:nil];
if ((int)index == 0) {
[[NSUserDefaults standardUserDefaults] setObject:(@"This is #1")
forKey:@"textkey"];
}
else if ((int)index == 1) {
[[NSUserDefaults standardUserDefaults] setObject:(@"This is #2")
forKey:@"textkey"];
}
etc.
[self.navigationController pushViewController:detailViewController animated:YES];
}
在detailViewController上,我的代码是
-(void) ViewDidLoad {
UIBarButtonItem *doneButton =[[UIBarButtonItem alloc]
initWithTitle:@"Done"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(doneEditing:)];
self.navigationItem.rightBarButtonItem = doneButton; //I could use this as the save button.
self.myText.text =[[NSUserDefaults standardUserDefaults] objectForKey:@"textkey"];
}
由于
好的我正试图摆脱NSUserDefaults并使用NSMutableDictionary。
这是我在USUserDefault所在的第一个视图控制器中的新代码。
- (void) coverflowView:(TKCoverflowView*)coverflowView coverAtIndexWasDoubleTapped:(int)index{
SomeDetailViewController *detailViewController = [[SomeDetailViewController alloc] initWithNibName:@"SomeDetailViewController" bundle:nil];
if ((int)index == 0) {
NSMutableDictionary *mydictionary = [[NSMutableDictionary alloc] init];
[mydictionary setObject:(@"0002.jpg")
forKey:@"imagekey"];
}
[self.navigationController pushViewController:detailViewController animated:YES];
}
在detailViewController中,我在ViewDidLoad {
中编写了这段代码 imageView .image = [[UIImage alloc] init];
self.imageView.image =[UIImage imageNamed:[[NSMutableDictionary ] objectForKey:@"imagekey"]];
替换NSUserDefault代码。
但我一直收到错误
预期';'表达后 期待的表达 未使用的Expession结果 预期标识符
有人可以帮忙。
答案 0 :(得分:1)
这似乎不是NSUserDefaults类的好用。它用于持久存储,而不是类间通信。如果您确实希望继续使用它,请务必在设置值后调用[[NSUserDefaults standardUserDefaults] synchronize];
。
在你的问题上......
由于您已经拥有包含当前文本的text属性的textview,因此您可能只想将其用作存储机制。实例化SomeDetailViewController时,只需将textview.text传递给自定义init方法,甚至直接从coverflowView:coverAtIndexWasDoubleTapped:
实现设置detailViewController.myText.text属性。