2014-01-22 36 views
0

我爲我的iOS應用程序創建了一個屏幕教程。如何更改由UIPageViewController管理的視圖控制器的背景顏色?

爲了實現這個功能,我使用了一個管理3個viewControllers的UIPageViewController。當我更改screenTutorial1或screenTutorial2它永遠不會被調用後臺

- (void)setupContentViews{ 
UIViewController *screenTutorial1 = [[UIViewController alloc] initWithNibName:@"ScreenTutorial_1ViewController" bundle:nil]; 
UIViewController *screenTutorial2 = [[UIViewController alloc] initWithNibName:@"ScreenTutorial_2ViewController" bundle:nil]; 
tutorialPages = @[screenTutorial1, screenTutorial2]; 

}

一切都很正常,除了。這是什麼原因?有解決方案嗎?

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
self.view.backgroundColor = [UIColor redColor]; 
NSLog(@"line 30)"); 
} 

經過一番實驗後,似乎如果我在UIPageViewController(見下文)中添加代碼它設置屬性。但是如果我需要添加任何自定義方法到我的視圖控制器呢?我需要做什麼從UIPageViewController?

enter image description here

回答

1

的問題是,在這一點上view是零,所以你不能改變backgroundColor

您應該繼承UIViewController並將backgroundColor設置爲viewDidLoad。在這之後,你應該初始化視圖控制器爲tutorialPages伊娃這樣的:

YourUIViewControllerSubclass *screenTutorial1 = [[YourUIViewControllerSubclass alloc] initWithNimbName:@"ScreenTutorial_1ViewController" bunble:nil]; 

更新

更新你的方法setupContentViews這樣的:

- (void)setupContentViews 
{ 
    ScreenTutorial_1ViewController *screenTutorial1 = [[ScreenTutorial_1ViewController alloc] initWithNibName:@"ScreenTutorial_1ViewController" bundle:nil]; 
    UIViewController *screenTutorial2 = [[UIViewController alloc] initWithNibName:@"ScreenTutorial_2ViewController" bundle:nil]; 
    tutorialPages = @[screenTutorial1, screenTutorial2]; 
} 
+0

這正是我怎麼把它設置。 – user3071579

+0

下面是我在.h文件中的內容 – user3071579

+0

@interface ScreenTutorial_1ViewController:UIViewController – user3071579