0

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

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

为 TAP 计数器重现的步骤 .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 

提前致谢

4

2 回答 2

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 值。

于 2012-10-21T18:11:03.350 回答
0

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

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

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

于 2012-10-21T18:17:25.053 回答