- (voID)prepareForSegue:(UIStoryboardSegue *)segue sender:(ID)sender { if ([segue.IDentifIEr isEqualToString:@"nameOfSegue"]) { VIEwController *ibcVC = segue destinationVIEwController; ibcVC.myTextFIEld = self.myTextFIEld; }}
我有3个视图控制器按以下顺序链接:VIEwC1 => VIEwC2 => VIEwC3.
我的UITextFIEld在VIEwC2上.
例如,当我单击VIEwC2上的按钮,即推入VIEwC3时,它会将数据传递给VIEwC3.但是,我说我目前在VIEwC2上,我在UITextVIEw中键入了一些内容,然后我在Xcode自动放置的导航上单击Back按钮,当使用选项卡式视图应用程序时,它将按照预期正常运行VIEwC1.但是,如果按下VIEwC1上按下VIEwC2的按钮,我在UITextFIEld中键入的数据/文本已被删除或重置为空.
所以基本上这里是使用轻微数字视觉的问题:
数据被正确推送EX.
VIEwC1 => VIEwC2 => VIEwC3
如果我们在NAVIGATION EX上按下后退按钮,数据就会被删除.
VIEwC1< = VIEwC2
解决方法 一种解决方案是将字符串存储在单例中.SharedStrings.h =
#import <Foundation/Foundation.h>@interface SharedStrings : NSObject{ Nsstring *string;}+(SharedStrings *)sharedString;-(voID)setString:(Nsstring *)newString;-(Nsstring *)getString;@end
SharedStrings.m =
#import "SharedStrings.h"static SharedStrings *sharedString;@implementation SharedStrings-(ID)init{ self = [super init]; string = [Nsstring new]; return self;}+(SharedStrings *)sharedString{ if (!sharedString) { sharedString = [[SharedStrings alloc] init]; } return sharedString;}-(voID)setString:(Nsstring *)newString{ string = newString;}-(Nsstring *)getString{ return string;}@end
然后,您可以根据需要获取所有视图并设置字符串,如下所示:
- (voID)vIEwWillAppear:(BOol)animated{ [myTextFIEld setText:[[SharedStrings sharedString] getString]]; [super vIEwWillAppear:animated];}-(voID)textFIEldDIDEndEditing:(UITextFIEld *)textFIEld{ if (textFIEld == enterInfoTF) { [[SharedStrings sharedString] setString:textFIEld.text]; }}总结
以上是内存溢出为你收集整理的Xcode:Storyboard选项卡式应用程序将数据传回全部内容,希望文章能够帮你解决Xcode:Storyboard选项卡式应用程序将数据传回所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)