0

我已经UIviewController在另一个上面分配了一个。我想从这个新控制器更改另一个的颜色,但我不知道如何。我试过这个:

-(IBAction)sliderValueChanged:(UISlider *)sender
{
NSLog(@"slider value = %f", sender.value);

ViewController1.view.backgroundColor = [UIColor colorWithRed:(160/sender.value) green:(97/sender.value) blue:(5/sender.value) alpha:0.6];
}

并导入了ViewController1,但它给出了一个错误。如果我把self.view它工作正常,但不能在ViewController1. 我怎样才能做到这一点?

4

1 回答 1

1

看起来您实际上并没有存储对要更改其背景颜色的 UIViewController 的引用。尝试为您正在显示的视图控制器创建一个属性,然后执行以下操作:

@implementation MyPoppingController

-(void)showViewController
{
    UIStoryboard* sb = [UIStoryboard storyboardWithName:@"StoryboardInfo" bundle:nil];        
    self.myPopController = [sb instantiateInitialViewController]; 
    self.myPopController.myPresentingViewController = self;
    [self presentPopupViewController:self.myPopController animationType:MJPopupViewAnimationFade]; 
}
@end


@interface MyPoppedController

@property(strong, nonatomic) MyPopppingController *myPresentingViewController;

@end

@implementation MyPoppedController

-(IBAction)sliderValueChanged:(UISlider *)sender
{
    self.myPresentingViewController.view.backgroundColor = [UIColor colorWithRed:(160/sender.value) green:(97/sender.value) blue:(5/sender.value) alpha:0.6];
}

@end
于 2013-09-12T20:37:03.573 回答