0

我有一个记分牌应用程序,其中包含许多 UITextFields,其中包含每一轮每个玩家的分数。单击文本字段时,我想创建另一个视图控制器(弹出框或页面卷曲模式segue 可以工作),而不是仅使用键盘输入分数。这个第二视图控制器有一个特殊的计算器,玩家可以用它来输入他们的分数。所以基本上每个分数框都会触发计算器视图的操作。一旦我在计算器视图上得到结果,我想关闭视图并让刚刚计算的分数出现在导致 segue 发生的分数框中。(我想将特定的 UILabel.text 从第二个视图控制器传输回第一个视图控制器)。

在尝试了很多方法之后,我觉得我必须了解代表。我正试图围绕这个概念展开思考,看看这是否真的适用于我正在尝试做的事情。看来我必须以某种方式让我的 UITextFields(分数框)“听”或“等待”计算器结果发生变化。这个对吗?我是不是把事情复杂化了?我是否需要了解代表才能完成这项工作?

4

1 回答 1

0

是的,你可以玩委托,这样你就可以实现你想要的。你也可以使用“NSNotificationCenter”来监听特定的事件并调用方法或任何你想要的。

像这样:

添加观察者:

[[NSNotificationCenter defaultCenter] addObserver:self
        selector:@selector(receiveTestNotification:) 
        name:@"TestNotification"
        object:nil];

然后从你想要的地方发布它,就像你从文本字段输入中所说的那样:

[[NSNotificationCenter defaultCenter] 
        postNotificationName:@"TestNotification" 
        object:self];

并以这样的方法接收它

-(void) receiveTestNotification:(NSNotification *) notification
{
    // [notification name] should always be @"TestNotification"
    // unless you use this method for observation of other notifications
    // as well.

    if ([[notification name] isEqualToString:@"TestNotification"])
        NSLog (@"Successfully received the test notification!");
}
于 2012-08-03T03:05:49.257 回答