如何更改其他视图控制器的颜色

时间:2013-09-10 19:27:28

标签: iphone ios objective-c

我有这个简单的故事板:

enter image description here

它做的很简单......如果按下buttonOne,它将转到UIView * viewTwo。当按下导航栏上的“返回”按钮时,它将返回ViewController。

现在,我想要玩的是当按下这个按钮时,我想添加一些颜色作为viewTwo的背景。

这是我的.h文件:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIView *viewTwo;

- (IBAction)buttonOne;

@end

这是我的.m文件:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)buttonOne {
    UIColor *colour = [[UIColor alloc]initWithRed:27.0/255.0 green:56.0/255.0 blue:152.0/255.0 alpha:1.0];
    _viewTwo.backgroundColor = colour;
}
@end

该代码没有任何问题...构建成功并在模拟器上运行没有错误,但为什么颜色没有在viewTwo上显示?

我在这里错过了什么?感谢。

更新:我添加了这一行:

[colour release];

但似乎release无法处理我的Xcode。它说:

  

'release'不可用。不适用于自动参考   计数模式。

1 个答案:

答案 0 :(得分:1)

你需要实现prepareForSegue storyBoard委托方法, 记得在故事板场景中命名segue标识符

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"You segue name identifier"])
    {
        UIViewController* viewController = segue.destinationViewController;
UIColor *colour = [[UIColor alloc]initWithRed:27.0/255.0 green:56.0/255.0 blue:152.0/255.0 alpha:1.0];
    viewController.view.backgroundColor = colour;

你可以删除: - (IBAction)buttonOne methode