【问题标题】:Segue data transfer and data accessSegue 数据传输和数据访问
【发布时间】:2013-06-27 21:56:42
【问题描述】:

喂!

我觉得寻求帮助真的很愚蠢,但是我的第一个 Xcode 项目卡住了。

所以我正在创建一个计算器,并创建了一个将两个结果打印到两个字符串的方法

-(IBAction)calculate:(id)sender {


(...)


stringResult=[[NSString alloc]
                            initWithFormat:@"%1.2d",intResult];
stringTimeResult=[[NSString alloc]
                        initWithFormat:@"%1.2d",intTimeResult];


[stringTimeResult release];
[stringResult release];

 }

我已经准备好 Segue 将两个字符串转移到一个新视图上的两个标签,为给定的计算创建一个表单或结果。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
NSLog(@"prepareForSegue: %@", segue.identifier);
if([segue.identifier isEqualToString:@"Answer"])
{
[segue.destinationViewController setTransferStr:stringTimeResult];
[segue.destinationViewController setTransferStr2:stringResult];
}

视图确实加载到新控制器中

- (void)viewDidLoad
{
[super viewDidLoad];
self.TimeResult.text = self.transferStr;
self.Result.text = self.transferStr2;
}

但是,我遇到了很多麻烦!原谅我缺乏知识,但我就是想不通!

主要是计算的答案显示在下一个视图控制器的两个标签上!

提前感谢您的帮助

恩典

【问题讨论】:

  • 问题是什么?
  • 如何解决这个问题?我不知道,但它不传输数据。 Time 结果是否保存在计算方法中,我是否必须以某种方式返回它?我的 segue 实现有什么问题吗?
  • 请让你的问题更容易理解,你只是提供事实。
  • 对不起!基本上,整个过程最后不会更新两个标签。它使它们保持空白。第一种方法与segue方法的观点相同。我怎么能解决这个问题?我究竟做错了什么?为什么它在标签上保持空白?

标签: xcode segue data-transfer


【解决方案1】:

有 2 个视图控制器“vcA”和“vcB”,通过名为“AtoBSegue”的 segue 连接 现在您有一些数据要从 vcA -> AtoBSegue -> vcB 传输:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([segue.identifier isEqualToString:@"AtoBSegue"]){
        vcB *viewcontrollerB = (vcB*)segue.destinationViewController;
        viewcontrollerB.labelAtvcB = self.labelAtvcA.text; //labelAtvcB is the label from vcB, labelAtvcA is the label from vcA.
    }
}

注意:请在 vcB(目标视图控制器)中使用 labelAtvcB 时定义准确的名称

【讨论】:

  • 谢谢!但是,将详细信息更改为您的允许我解决我没有提到的几个问题,但 ui 标签仍然为空。是不是因为函数计算在第一个使用 segue 方法的视图控制器中?是不是因为计算方法无效,无法得出计算结果?我一无所知。
猜你喜欢
  • 1970-01-01
  • 2018-05-08
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 2017-08-10
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
相关资源
最近更新 更多