我已经整理了一个文本字段,可以将文本保存并保存并将其输出到同一控制器页面上的标签中。我的问题是如何使用另一个控制器页面(使用选项卡视图控制器)并在第二个控制器上输出相同的文本。
我已将标签链接为保存文本的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 = @"";
}
提前致谢
答案 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;不要直接从文本域向其他控制器传递文本。