我已经制作了一个简单的应用程序来测试它并且无法解决这个问题。我有一个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
答案 0 :(得分:0)
在ButtonViewController中,你不希望分配初始化LabelViewController的实例 - 屏幕上已经存在的实例。两个子视图控制器都在父控制器之前实例化。因此,您需要做的是获取对屏幕上的LabelViewController的引用。您可以使用self.parentViewController.childViewControllers [0](0可能必须为1 - 我不知道哪个控制器是哪个)。
LabelViewController *fnc = self.parentViewController.childViewControllers[0];
[fnc loadLabel];