2

我在 ViewCotroller 类中实现了一个方法,用于将消息设置为该类中的 UILable。

 -(void)setAuthenticationMessage:(NSString *)message{
        //lblStatus is the UILabel
        lblStatus.text = message;
 }

我正在从另一个类访问此方法来设置消息。尽管代码正确执行,但此消息并未更新。我通过在不同的线程中执行此方法进行了尝试。但这也没有成功。谁能帮我解决这个问题?

4

3 回答 3

0

什么是lblStatus内存管理属性?仅您的命名约定就使我相信这与此有关。通常您将实例变量称为: _lblStatusself.lblStatus

于 2012-12-12T09:55:24.263 回答
0

使用委托设计模式(google it)。例子:

    //In the updating class .h

        @protocol LabelChangerDelegate <NSObject>
        -(void)handleLabelChangeMessage;
        @end

        @property (assign, nonatomic) id <LabelChangerDelegate> delegate;

       //In the updating class .m

        -(void)changeLabelInOtherClass{
         if (self.delegate != nil && [self.delegate respondsToSelector:@selector(handleLabelChangeMessage)]) {
                [self.delegate performSelector:@selector(handleLabelChangeMessage)];
            }
        } else {
         NSLog(@"Delgate doesn't implement handleLabelChangeMessage");
        }

        //In the view controller .h

        <LabelChangerDelegate>

        -(void)viewDidLoad{
         //set the delegate to self
        }

 //In the view controller .m

        -(void)handleLabelChangeMessage{
         self.label.text=@"I changed through delegation";
        }

另一种选择是使用 NSNotificationCenter

于 2012-12-13T12:06:02.330 回答
0

使用@protocol & delegates 来访问另一个类参考这个链接示例 example2

于 2012-12-12T13:03:26.433 回答