尝试保存文本并将其输出到不同的屏幕上

时间:2014-04-12 22:31:16

标签: ios objective-c

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

我已将标签链接为保存文本的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 = @"";
}

提前致谢

2 个答案:

答案 0 :(得分:0)

当用户点击另一个标签传递文本时,您可以使用UITabBarDelegate进行收听。

请查看此链接Class reference

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

或者您也可以查看Class reference

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

有了这个,你可以让新的视图控制器以一种好的方式分配值。

让我知道它是否有助于你

答案 1 :(得分:0)

实际上,UITextField不是存储任何大量时间数据的地方,因为模型信息不应存储在UIView中。如果您希望可以从多个UIViewController访问此文本,则应创建一个可以存储字符串的Model对象,并且无论视图控制器发生什么情况都会持久存在。

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

- (void)textFieldDidEndEditing:(UITextField *)textField

调用此方法时,将文本传递给模型。可以使用Singleton模式设置模型,只需要全局访问1个静态模型对象。当您的应用退出时,您可以使用<NSCoding>将此对象写入磁盘,以便下次应用启动时再次将其重新读取。

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

tl;不要直接从文本域向其他控制器传递文本。