在两个视图上显示来自点按计数器的文本

时间:2012-10-21 17:40:39

标签: objective-c ios xcode4.5

所以我有我的应用程序,我有一个点击计数器和显示标签的视图。我希望它能在主视图上显示文本(现在可以),但也可以在第二个视图上显示。

那我怎么能在另一个视图上显示文字呢?如果需要更多详细信息,请发送电子邮件。

为TAP COUNTER重播的步骤 .h文件:

@interface Level1 : UIViewController {

int counter;

IBOutlet UILabel *count;

}

-(IBAction)plus;

@property (assign) int counter;

@end

.m文件:

@synthesize counter;

- (void) viewDidLoad {

counter=1;

count.text = @"0";

[super viewDidLoad];
}

-(IBAction)plus {

counter=counter + 1;

count.text = [NSString stringWithFormat:@"%i",counter];
}

@end 

提前致谢

2 个答案:

答案 0 :(得分:1)

您可以使用计数器值创建模型,该模型将在两个视图之间共享。

模型通常使用单例模式创建。在这种情况下,可以这样做:

你的.h文件:

@interface CounterModel
@property (assign) NSInteger counter;// atomic
+ (id)sharedInstance;
- (void)increment;
@end

你的.m文件:

@implementation CounterModel
@synthesize counter;

- (id)init
{
    if (self = [super init])
    {
    }
    return self;
}

+ (id)sharedInstance
{
    static CounterModel *instance = nil;
    if (instance == nil)
    {
        instance = [[CounterModel alloc] init];
    }
    return instance;
}

- (void)increment
{
    counter++;
}

@end

然后从一个视图控制器中调用:

[[CounterModel sharedInstance] increment];

从第二个开始,您可以通过调用:

来读取此更新值
[[CounterModel sharedInstance] counter];

要实现您想要的效果,您可以在viewWillAppear方法中设置从模型的计数器值读取的UILabel值。

答案 1 :(得分:0)

在这里,您可以使用委托将数据传递到另一个视图。当您可能通过第一个视图加载第二个视图时,可以将第一个视图设置为数据源。

http://www.youtube.com/watch?v=e5l0QOyxZvI

您还可以使用通知中心将消息发送到另一个视图。