我有一個故事板應用程序。我使用幾個View控制器與segues來根據選擇的項目從表視圖中進行選擇。我想要一個頁面視圖控制器,其中頁面將成爲故事板中的一個或多個視圖控制器,甚至可以重複它們。我試圖init
這樣的頁面視圖控制器: .... self.dataSource = self;在頁面視圖控制器中以編程方式使用視圖控制器
UIViewController *initialViewController =[self viewControllerAtIndex:current];
NSArray *viewControllers = [NSArray arrayWithObject:initialViewController];
[self setViewControllers:viewControllers direction:UIPageViewControllerNavigationOrientationHorizontal animated:NO completion:nil];
....
- (UIViewController *)viewControllerAtIndex:(NSUInteger)index
{
if ((descriptions.count == 0) ||
(index >= descriptions.count)) {
return nil;
}
current=index;
// Create a new view controller and pass suitable data.
NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
Description *description=[DBCompany getDescriptionById:language descriptionId:[[descriptions objectAtIndex:index] integerValue]];
UIViewController *viewController=nil;
if(description.frame==100){
viewController=[[Company100ViewController alloc] init];
((Company100ViewController*)viewController).companyId = companyId;
}
return viewController;
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
if ((descriptions.count == 0) ||
(current-1 < 0)) {
return nil;
}
return [self viewControllerAtIndex:current-1];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
if ((descriptions.count == 0) ||
(current >= descriptions.count)) {
return nil;
}
return [self viewControllerAtIndex:current+1];
}
但viewcontroller
顯示爲黑色。我認爲是因爲我添加了UIviewcontroller
類,但沒有將它連接到任何視圖XIB,就我而言,這是故事板。
如何以編程方式使用故事板中的不同視圖控制器在頁面視圖控制器中使用?
謝謝。這樣可行。 – 2013-03-06 18:30:16
注意:如果你的UIPageViewController與頁面UIViewControllers在同一個故事板上,你可以簡單地使用self.storyboard而不是UIStoryboard * sb = [UIStoryboard ... – 2013-03-15 16:05:35