尝试保存文本并在不同的屏幕上输出

我把一个文本字段放在一起,可以将文本保存并将其输出到同一控制器页面上的标签中。 我的问题是如何使用另一个控制器页面(使用选项卡视图控制器)并在第二个控制器上输出相同的文本。

我已经将该标签链接为与文本保存为相同的IBOulet。

下面是我的代码为firstcontroller.m

#import "FirstViewController.h" @interface FirstViewController () @property (nonatomic, strong) IBOutlet UILabel* label; @end @implementation FirstViewController -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ self.label.text = @""; return TRUE; } -(BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstResponder]; self.label.text = textField.text; return YES; } -(void)textFieldDidBeginEditing:(UITextField *)textField{ textField.text = @""; } 

提前致谢

您可以使用UITabBarDelegate来监听用户何时单击另一个选项卡来传递文本。

请检查这个链接类的参考

 - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 

或者你也可以检查这个类的参考

 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 

有了这个,你可以得到新的视图控制器分配的好方法的价值。

让我知道,如果它可以帮助你

实际上, UITextField不是一个存储数据的地方,因为Model信息不应该存储在UIView 。 如果你希望这个文本可以从多个UIViewController访问,你应该创build一个Model对象来存储这个string,并且不pipe你的视图控制器发生了什么。

您可以通过让您的UIViewController成为UITextField UIViewController将此文本传递给模型对象。 然后应使UIViewController符合<UITextFieldDelegate>以便您可以侦听:

- (void)textFieldDidEndEditing:(UITextField *)textField

当这个被调用时,将文本传递给你的模型。 该模型可以设置为Singleton模式,只有1个静态模型对象可以全局访问。 当您的应用程序退出时,您可以使用<NSCoding>将此对象写入磁盘,以便下次启动应用程序时再次读取该对象。

对于非平凡的数据,我build议使用CoreData。

tl;不要将文本直接从文本字段传递给其他控制器。