스토리 보드가있는 앱이 있습니다. 선택한 항목에 따라 테이블보기에서 선택하기 위해 여러 뷰 컨트롤러를 사용하고 있습니다. 나는 페이지가 스토리 보드의 하나 이상의 뷰 컨트롤러가 될 페이지 뷰 컨트롤러를 원한다. 나는 페이지 뷰 컨트롤러를 init
과 같이하려고 시도하고 있습니다 : .... self.dataSource = self;페이지 뷰 컨트롤러에서 스토리 보드의 View Controller를 프로그래밍 방식으로 사용하기
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)에도 연결하지 않기 때문에 생각합니다.
페이지 뷰 컨트롤러에서 스토리 보드의 다른보기 컨트롤러를 프로그래밍 방식으로 사용하려면 어떻게해야합니까?
감사합니다. 그거야. –
참고 : UIPageViewController가 UIViewController 페이지와 동일한 스토리 보드에 있으면 UIStoryboard * sb = [UIStoryboard ...] 대신 self.storyboard를 사용할 수 있습니다. –