如何在 Xcode 的另一个屏幕上完成某个操作时更改按钮的状态?

Posted

技术标签:

【中文标题】如何在 Xcode 的另一个屏幕上完成某个操作时更改按钮的状态?【英文标题】:How to change the state of a button when an action is completed on another screen in Xcode? 【发布时间】:2011-11-24 22:46:52 【问题描述】:

当游戏本身达到一定数量的分数时,我将如何更改关卡选择屏幕上的按钮状态?基本上,我希望通过获得一定数量的分数,在与我获得分数的游戏屏幕不同的屏幕上完成关卡时出现一个按钮。我希望它几乎就像在愤怒的小鸟中一样。我已经对关卡进行了编程,以便在完成时从关卡选择屏幕和上一个关卡打开。

【问题讨论】:

【参考方案1】:

如果可变按钮屏幕是不同的一组文件或不同的XIB,那么你可以调用自定义的-(id)init方法来获取分数的int或字符串。

类似:

//.h 

int passedScore;

//.m
-(id)initwithscore:(int)score  
if (self = [super init]) 

passedScore = score;
        
  

然后当你转换到新视图时,调用

[newview alloc]initwithscore://score int]autorelease];

然后,查看分数是大于还是小于给定常数就很简单了。

if(//scoreint >= //const) 
// do stuff 

【讨论】:

当我将您给我的代码输入到应用程序中时,它说存在自动引用计数问题:接收者类型 'new view' 例如消息未声明带有选择器“initwithscore”的方法。这是什么意思? 这意味着你没有#import 'new view' @class 'new view';并指向新的观点。 抱歉这些问题,但我相信我已经完成了所有这些,但它仍然显示 ARC 问题。 你声明了 -(id)initwithScore:(int)score;在 .h 文件中? 是的,我在 .h 文件中声明了该方法。我意识到您需要在两个文件中声明它,所以我做了,现在它在与以前相同的位置显示:“未使用的表达式结果”。我在两个块中都有相同的代码,除了 'newview.m' 文件中的 If - If 语句和 [newview alloc] 具有另一个视图的名称。我想不通。怎么回事?!

以上是关于如何在 Xcode 的另一个屏幕上完成某个操作时更改按钮的状态?的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift中打开动画完成的另一个视图?

如何将列表项的值插入 KivyMD 中的另一个屏幕

如何在 Android 上实现通过另一个屏幕上的操作关闭的警报?

按钮到 XIB 链接,带我进入空白屏幕(Xcode)

如何在执行下一个操作之前等待请求完成(Xcode 11)

如何在本机反应中转到顶部选项卡导航中的另一个屏幕