【问题标题】:How to change the background color from another ViewController?如何从另一个 ViewController 更改背景颜色?
【发布时间】:2014-04-21 07:35:21
【问题描述】:

我有两个视图控制器,一个是 Home,另一个是由 cocoacontrol 动画 (MJPopupViewController) 显示的,当你按下一个按钮时,所有的背景都会发生变化,但我不知道如何更改 home查看控制器的背景,因为它们不在导航中,所以我不能使用 self.parentViewController 强制转换,那么我该怎么做呢?代码如下:

- (IBAction)purple:(id)sender {
    self.view.backgroundColor = [UIColor MyPurple];

    HomeViewController *home = (HomeViewController *) self.parentViewController; <-- this didnt work, I also tried only self....

    home.view.backgroundColor = [UIColor purpleColor];


}

所以我需要你的帮助,我开始所以希望你能理解,谢谢!

【问题讨论】:

标签: ios objective-c background-color


【解决方案1】:

或许可以试试:

HomeViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[NSNotificationCenter defaultCenter]
     addObserver:self
     selector:@selector(changeColor)
     name:@"changeColor" object:nil];
}

- (void)changeColor
{
    self.view.backgroundColor = [UIColor purpleColor];
}

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter]removeObserver:self];
}

PopUpViewController

- (IBAction)purple:(id)sender
{
    [[NSNotificationCenter defaultCenter]postNotificationName:@"changeColor" object:nil];
}

【讨论】:

  • 嗯没有没用,我不知道是不是那个但是没有导航控制器......
  • 嗯,这就是问题所在。您需要获取层次结构中视图控制器的索引。
  • 对不起,如果不是太麻烦,我该怎么做?这是因为我开始了,我不明白..谢谢
  • 那么,您使用的是某种容器视图控制器还是标签栏控制器?您的控制器是如何添加到堆栈中的?
  • 有了这个 UIViewController 类别github.com/martinjuhasz/MJPopupViewController
【解决方案2】:

我建议您更改“视图”的背景颜色,您需要在其上设置 backgroundColor 属性。这意味着您可以访问它。如果它全部在一个控制器中,您只需使用

self.view.backgroundColor = [UIColor redColor];

如果它在基于导航或类似的应用程序中,那么您可以访问视图 parentViewController 并更改其颜色,如下所示:

self.parentViewController.view.backgroundColor = [UIColor redColor];

如果这是不可能的,那么您可以在创建第二个视图控制器时在它上设置一个 iVar,其中包含您要更改背景颜色的 viewController 的实例。

MyViewController* secondViewController = [[MyViewController alloc] init];
secondViewController.bgColorNeedsChangingViewController = self;

然后在secondViewController的逻辑中

self.bgColorNeedsChangingViewController.view.backgroundColor = [UIColor redColor];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    相关资源
    最近更新 更多