2013-09-10 42 views
-2

我有這個簡單的故事板:我如何可以改變顏色的其他視圖控制器

enter image description here

它的作用很簡單......如果buttonOne按下,它會去的UIView * viewTwo。當按下導航欄上的返回按鈕時,它將返回到ViewController。

現在,我想玩的是這個buttonOne被按下時,我想添加一些顏色作爲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 

有什麼錯碼是......成功地建立和模擬器運行沒有錯誤,但爲什麼顏色沒有在視圖上顯示?

我在這裏錯過了什麼?謝謝。

更新:我加入這行:

[colour release]; 

但似乎release不工作對我的Xcode。它說:

'release'is unavailable。在自動參考 計數模式中不可用。

+0

項目中使用ARC編譯沒有必要釋放對象 – tdelepine

回答

1

您需要實現prepareForSegue故事板委託梅索德, 記得命名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梅索德

+0

爲什麼你有這樣的行:UIViewController * viewController = segue.destinationViewController; ?它向我展示了一個警告:未使用的變量'viewController'。當我刪除該行時,它會成功構建,但它仍然爲viewTwo提供了白色背景。 –

+0

你確定粘貼所有代碼? viewController變量用在下面的第二行.. – tdelepine

+0

我使用你的代碼:viewController.backgroundColor = color;但它給了我這個錯誤消息:Property'backgroundColor'not found on type of'UIViewController' –

相關問題