【问题标题】:UITextView text not updatingUITextView 文本未更新
【发布时间】:2013-10-04 11:49:23
【问题描述】:

我有 UIWebview 用于显示文章。我需要选择一些文本并发送到另一个视图控制器 UITextView。但是当我安装应用程序时,我选择文本并将其加载到 viewcontroller1。但是当我转到 viewcontroller1 时,我选择了另一个文本,之前的文本只显示。它不会更新新文本。

代码:

视图控制器:

NSString *selection = [wbCont stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];

NSUserDefaults *userData1 = [NSUserDefaults standardUserDefaults];
    [userData1 setObject:selection forKey:@"preferenceName"];
    [userData1 synchronize];

 [self.navigationController pushViewController:viewcontroller1 animated:YES];

viewcontroller1:

NSString *savedValue = [[NSUserDefaults standardUserDefaults]
                            stringForKey:@"preferenceName"];

textView.text = [NSString stringWithFormat:@"%@", savedValue];
 [self.view addSubview:textView];

【问题讨论】:

  • savedValue的值是多少?
  • 在启动应用程序时,savedValue 来了,之后就没有了。
  • 当我选择 NSLog 时,它正在更新。但 NSUserdefaults 没有获得更新值。 NSLog(@"selection is %@",selection);

标签: iphone uiwebview uitextview nsuserdefaults


【解决方案1】:

在您的 viewcontroller1 中尝试这样做

NSUserDefaults *userData1 = [NSUserDefaults standardUserDefaults];
NSString *savedValue = [userData1 valueForKey:@"preferenceName"];

textView.text = [NSString stringWithFormat:@"%@", savedValue];
[self.view addSubview:textView];

【讨论】:

  • 它不工作。我想因为这条线 [self.navigationController pushViewController:viewcontroller1 animated:YES];有问题
  • 确保您的“选择”字符串对象中有数据?
  • 是的。这一行 NSString *selection = [wbCont stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];
【解决方案2】:

试试这个:

NSString *selection = [wbCont stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"];

    NSUserDefaults *userData1 = [NSUserDefaults standardUserDefaults];
    [userData1 setValue:selection forKey:@"preferenceName"];
    [NSUserDefaults standardUserDefaults] synchronize];
    [self.navigationController pushViewController:viewcontroller1 animated:YES];

//视图控制器

NSString *savedValue = [[NSUserDefaults standardUserDefaults]
                               valueForKey:@"preferenceName"];
 UITextView *textView = [UITextView alloc] initWithFrame : cgRectMake(0,0,200,50)]//if not created textview 
 [self.view addSubview:textView];
 textView.text = [NSString stringWithFormat:@"%@", savedValue];

【讨论】:

  • 不,它不工作......如果我使用 UIAlertview 获取文本它正在改变,当我使用 NSUserDefaults 时它没有改变......
  • 从 userdefault 获取值时字符串是否为您提供 NULL?
  • 当我选择 NSLog 时,它正在更新。但 NSUserdefaults 没有获得更新值。 NSLog(@"selection is %@",selection);
  • 尝试一件事 NSString *savedValue = [[NSUserDefaults standardUserDefaults] valueForKey:@"preferenceName"];在您设置值的同一视图中使用相同的东西并 nslog 保存的值。你得到了什么?
  • 是的,它正在工作。但问题是它没有更新到另一个视图控制器。
猜你喜欢
  • 2011-01-30
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
相关资源
最近更新 更多