我不知道如何弄清视图控制器1中视图控制器2的滑块值的变化。我想我正确调用它,但值不传递给视图。如何使用viewcontroller 2中的滑块进行更改,以反映viewcontroller 1中的更改?
我把一个滑块放在nib文件中,当我改变它的值时,矩形的高度和宽度的值应该改变。
这里是我的//appdelegate.m
CGRect bounds = [self.window bounds];
KaleidoTab *view = [[KaleidoTab alloc] initWithFrame:bounds];
view.backgroundColor = [UIColor whiteColor];
KaleidoTabFirstViewController *vc = [[KaleidoTabFirstViewController alloc] init];
[vc setView: view];
KaleidoTabSecondViewController *vc2 = [[KaleidoTabSecondViewController alloc] init];
//[vc2 setView: view];
vc2.vc = vc;
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[vc, vc2];
self.window.rootViewController = self.tabBarController;
这里是我的//secondviewcontroller.h
#import <UIKit/UIKit.h>
#import "KaleidoTabFirstViewController.h"
@interface KaleidoTabSecondViewController : UIViewController {
IBOutlet UISlider *changeSize;
IBOutlet UILabel *label1; }
@property KaleidoTabFirstViewController *vc;
@property (nonatomic, retain) IBOutlet UISlider *changeSize;
- (IBAction) changeSizeSlider:(id)sender;
这里的//secondviewcontroller.m
- (IBAction)changeSizeSlider:(UISlider *)sender
{
/// Change label to match slider's value
label1.text = [NSString stringWithFormat:@"%g", changeSize.value];
CGFloat changeSizeCont = changeSize.value;
((KaleidoTab *)vc.view).rect_width = changeSizeCont;
((KaleidoTab *)vc.view).rect_height = changeSizeCont;
}
kaleidotab.m有绘制矩形的方法。
我合成的属性,一切都很好。我认为我的firstviewcontroller对象有问题。
感谢您的时间。 谢谢
这非常令人费解。为什么要创建视图并将其分配给视图控制器?我会定义视图控制器使用(作为它的视图属性,在笔尖)的KaleidoTab视图。然后,使用标准的MVC实践来定义一个数据模型,该数据模型保存在滑块上操作的值。任何希望在数据模型更新时都可以更新的视图。 – 2013-04-11 00:08:21
@MattMartel我相信我正确的方式,与选项卡式应用程序模板我可以让我的viewcontrollers每当我想要编程方式调用,但问题是与具有nib文件的secondviewcontroller。该值不是从滑块的cahngevalue传递到视图对象vc2。试图弄清楚,但没有成功。 – user2038249 2013-04-11 00:28:51
滑块标签是否正确更新? – Matt 2013-04-11 00:42:46