Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 具有多个传出段时在视图控制器之间传输数据_Objective C_View_Uipopover - Fatal编程技术网

Objective c 具有多个传出段时在视图控制器之间传输数据

Objective c 具有多个传出段时在视图控制器之间传输数据,objective-c,view,uipopover,Objective C,View,Uipopover,我正在为iPad制作记分板应用程序。该应用程序包含一个包含五名玩家和十二轮的网格图形。我只是为每个要输入的分数创建了UITextField。每个文本字段对象都可以很容易地求和,每个玩家都有一个总分。球员根据得分进行排名。正如我所解释的,我的应用程序是完整的。然而,当我试图使它更先进时,我遇到了问题。假设我想输入第一轮球员1的得分。当我点击网格框时,我想显示一个UIPopover。popover带来了一个用于确定分数的特殊计算器。我希望将计算器的结果传输回我最初单击的框中。当按下“计算分数”按钮时

我正在为iPad制作记分板应用程序。该应用程序包含一个包含五名玩家和十二轮的网格图形。我只是为每个要输入的分数创建了UITextField。每个文本字段对象都可以很容易地求和,每个玩家都有一个总分。球员根据得分进行排名。正如我所解释的,我的应用程序是完整的。然而,当我试图使它更先进时,我遇到了问题。假设我想输入第一轮球员1的得分。当我点击网格框时,我想显示一个UIPopover。popover带来了一个用于确定分数的特殊计算器。我希望将计算器的结果传输回我最初单击的框中。当按下“计算分数”按钮时,我很难关闭UIPopover。如果我使用Disclease popover方法,我可以为计算器的结果设置一个特定的scoreBox,但是我需要有一个Disclease popover方法来知道应该更改哪个框。基本上,我有一个包含60个框的网格,每个框连接到一个计算器视图控制器。我如何让计算器将数据传输回它来自的盒子?有什么想法吗?谢谢:)

在显示
uipoOverviewController
之前,您应该设置一个引用当前框的
box
属性。然后从
UIPopoverViewController
您可以在解除popover之前设置
框的文本。

我假设您指的是这样的内容:-(void)prepareforsgue:(UIStoryboardSegue*)segue sender:(id)sender{if([[segue identifier]IsequalString:@“Player1Round1]”){self.box=self.player1Round1Score.text;}如果([[segue identifier]IsequalString:@“Player1Round2”]){self.box=self.player1Round1Score.text;}..//继续所有60个box选项,那么当我在计算器视图控制器上时,我可以说类似ViewController1*vc=[[ViewController1 alloc]init];self.resultOfCalculator.text=vc.box.text抱歉,我尝试键入代码格式,但未格式化。如果我正确理解您在prepareForSegue方法中所说的内容,我可以设置“框”属性设置为我希望使用if语句更改的特定框。然后,当取消popover时,我可以将框属性设置为计算器的结果。我在想,在上面的代码中,我应该将最后一条语句翻转为vc.box.text=self.resultsOfCalculator.text;这正确吗?这基本上就是我的意思,尽管应该有一个比
if
语句更好的方法。如果您是以编程方式触发segue,您只需将一个实例变量设置到单击的
box
,然后在
prepareforsgue
方法中将
box
属性设置为该值。感谢您迄今为止的帮助!我比以前更接近了但是事情并不是我所需要的。我尝试了我建议的“如果”语句。结果如下:我单击player1Round1评分框。(prepareForSegue方法将该评分框的特定文本设置为等于我的属性“框”)。然后在下一个视图控制器上,我使用计算器计算分数。属性“box”设置为ResultToCalculator。然后当视图取消时,记分板仍然为空…直到我再次单击player1Round1按钮..然后记分出现如果您能更好地解释代码的
ViewController1*vc=…
部分,那将很有帮助。现在看来您正在分配一个新视图,而不是引用应用程序的主视图。我建议将
委托
属性传递给引用
self
的popover。