1

我制作了一个简单的应用程序来测试它,但无法弄清楚。我有一个 iPad 故事板,我在其中放置了两个容器视图,如下所示。我在一个视图中有一个标签,在另一个视图中有一个按钮。我的按钮将增加标签,一次增加 1 个数字。

我的问题不是传递值或递增,而是让视图加载新值。每个容器都有自己的 ViewController

下面的一些代码,虽然非常稀疏,因为我写了一堆并且因为它不起作用而被删除。请帮助正确的格式。我想保持这种通用格式,更新按钮内的全局变量并更新标签。

LabelViewController.h

#import <UIKit/UIKit.h>

@interface LabelViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *checkLabel;

-(void)loadLabel;

@end

LabelViewController.m
#import "LabelViewController.h"
#import "ParentViewController.h"

@interface LabelViewController ()

@end

@implementation LabelViewController
@synthesize checkLabel;
-(void)loadLabel{
    checkLabel.text = [NSString stringWithFormat:@"%d",value];
    [self.view setNeedsDisplay];
}
- (void)viewDidLoad
{
    [self loadLabel];
    [super viewDidLoad];
}

ButtonViewController.h
#import <UIKit/UIKit.h>


@interface ButtonViewController : UIViewController
- (IBAction)checkButton:(id)sender;
@end

ButtonViewController.m
#import "ButtonViewController.h"
#import "ParentViewController.h"
#import "LabelViewController.h"

@interface ButtonViewController ()

@end

@implementation ButtonViewController
- (IBAction)checkButton:(id)sender {
    value++;
    NSLog(@"%d",value);
    LabelViewController *fnc = [[LabelViewController alloc] init];
    [fnc loadLabel];
}
- (void)viewDidLoad
{
    [super viewDidLoad];
}

图片来源:http: //farm4.staticflickr.com/3822/9469907420_746db25b23_b.jpg

4

1 回答 1

0

在 ButtonViewController 中,您不希望分配初始化 LabelViewController 的实例——屏幕上的实例已经存在。两个子视图控制器都在父控制器之前实例化。因此,您需要做的是获取对屏幕上的 LabelViewController 的引用。您可以使用 self.parentViewController.childViewControllers[0] 来做到这一点(0 可能必须是 1——我不知道哪个控制器是哪个)。

 LabelViewController *fnc = self.parentViewController.childViewControllers[0];
 [fnc loadLabel];
于 2013-08-09T01:24:54.367 回答