将UILabel的文本从一个视图控制器传递到另一个视图控制器

时间:2013-04-19 17:07:03

标签: ios xcode xib viewcontroller nib

是的,我知道有些人已经安静地问过这个问题。

我正在寻找一些关于如何使用@properties将数据从一个视图控制器传递到另一个视图控制器的帮助。

我没有在此处发布代码,而是发布了一个免费的示例代码,您可以从打开的Dropbox文件夹中获取该代码。

感谢任何帮助,但请记住我正在寻求帮助,但我没有使用故事板开发,所以我无法使用prepareForSeque

网址:https://www.dropbox.com/sh/l7xagtqqprcjqr2/gplHMvM2-O

1 个答案:

答案 0 :(得分:1)

好的,所以,在SecondViewController中,你已经创建了一个UserText UITextField - 实际发生的是:

  1. SecondViewController *SecondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
  2. SecondView.UserText = TextField.text;
  3. 调用SecondViewController viewDidLoad,通过IBOutlet用正确的引用覆盖UserText。
  4. 这几乎是人们不断犯下的错误;初始化viewcontroller,并不能保证在你希望它时调用viewDidLoad。

    所以有几种方法可以做到这一点,

    1. 在SecondViewController
    2. 中设置NSString属性
    3. 将文本传递给SecondViewController的initWithNibName方法,如下所示:

      - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil text:(NSString *) text

    4. 选项2需要NSString属性。您无法将文本分配给通过IBOutlet连接的UILabel,这是因为,只要初始化视图控制器,viewDidLoad就会被 调用。