将数据从一个 ViewController 中的 UITextField 传递到另一个 View Controller 中的 UILabel

Posted

技术标签:

【中文标题】将数据从一个 ViewController 中的 UITextField 传递到另一个 View Controller 中的 UILabel【英文标题】:Passing Data from a UITextField in One ViewController to a UILabel in another View Controller 【发布时间】:2013-09-27 23:44:20 【问题描述】:

我被一些看起来相当简单的事情所困扰,并正在寻找我能得到的任何建议。我正在尝试从一个视图控制器中的多个文本字段传递数据,以在另一个视图控制器中显示为标签的文本。

我一直在关注与此问题相关的其他几个线程,我觉得我正在以完全相同的方式进行操作,但每次尝试转换应用程序时都会获得 CTD。这是我的设置;

在 Storyboard 中,在 VC 之间创建了一个 Segue,并为其提供了一个自定义标识符(“预览”)。其余代码如下:

VC2(包含标签的目标视图控制器)

.h

@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) NSString *nameLabelName;

.m(在 viewDidLoad 之后)

_nameLabel.text = _nameLabelName;

VC1(包含文本字段的根视图控制器)

.m

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
if ([segue.identifier isEqualToString:@"Preview"]) 
PreviewYesViewController *pvc1;
pvc1 = [segue destinationViewController];
pvc1.nameLabelName = _nameTextField.text;


再次,每次我运行它时,我都会收到一个 SIGABRT 错误,声称:

2013-09-27 19:28:37.580 ****[45758:a0b] -[UINavigationController setNameLabelName:]:无法识别的选择器发送到实例 0xa27fd10 2013-09-27 19:28:37.584 ****[45758:a0b] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UINavigationController setNameLabelName:]:无法识别的选择器发送到实例 0xa27fd10”

谁能帮我解决这个问题?

【问题讨论】:

【参考方案1】:

您的 pvc1 变量指向 UINavigationController。那是 : [序列目的地视图控制器] 正在返回一个 UINavigationController 实例。您应该检查您的故事板以确保目标视图控制器嵌入到 NavigationController 中。

编辑: 如果您选择为 PreviewYesViewController 保留 UINavigationController,那么您可以这样做:

pvc1 = [[segue destinationViewController] topViewController];

【讨论】:

嗨@mpprdev - 抱歉延迟回复,我正赶上假期。实际上我的 PVC 嵌入在导航控制器中。我在想这就是为什么你必须专门识别在根视图控制器中进行发送的视图控制器。考虑到我的 VC 都嵌入在导航控制器中,我应该做些什么不同的事情? @Slider257 - 如果您选择为 PreviewYesViewController 保留 UINavigationController,那么您可以这样做:pvc1 = [[segue destinationViewController] topViewController];

以上是关于将数据从一个 ViewController 中的 UITextField 传递到另一个 View Controller 中的 UILabel的主要内容,如果未能解决你的问题,请参考以下文章

将数据从自定义表格单元中的 uicollectionview 传递到 viewcontroller

如何将 Firebase iOS 中的数据从 TableViewController 传递到另一个 ViewController

将数组数据从 ViewController 传递到 TableView

如何将数据库从 AppDelegate 传递到 ViewController

将数据从 ViewController 传递到 AppDelegate

将数据从 viewcontroller tableview 传递到另一个视图控制器