3

在我的 iPad 应用程序中。我正在研究 UIPageViewController 我想在一个页面上设置文本并在另一页上设置图像。我已经尝试了很多并用谷歌搜索,但我没有找到任何解决方案。它正在消磨我的时间,所以如果有人对此进行了研究,请指导我并发布示例代码。

我已经使用了下面链接中的代码

http://www.ioslearner.com/implementing-uipageviewcontroller-programatically-without-storyboarding/

这是示例代码。我使用了内容视图控制器。

我想将两个视图控制器与 UIPageViewController 一起使用

- (UIPageViewControllerSpineLocation)pageViewController:(UIPageViewController *)pageViewController
               spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation

{

if(UIInterfaceOrientationIsPortrait(orientation))

{
    //Set the array with only 1 view controller
    UIViewController *currentViewController = [self.pageViewController.viewControllers objectAtIndex:0];
    NSArray *viewControllers = [NSArray arrayWithObject:currentViewController];
    [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL];

    //Important- Set the doubleSided property to NO.
    self.pageViewController.doubleSided = NO;
    //Return the spine location
    return UIPageViewControllerSpineLocationMin;

}
else
{
    NSArray *viewControllers = nil;
    ContentViewController *currentViewController = [self.pageViewController.viewControllers objectAtIndex:0];

    NSUInteger currentIndex = [self.modelArray indexOfObject:[(ContentViewController *)currentViewController labelContents]];

     NSUInteger currentIndex2 = [self.imagesArray2 indexOfObject:[(ContentViewController *)currentViewController imageContents]];

    if(currentIndex == 0 || currentIndex %2 == 0 || currentIndex2 == 0||currentIndex2 %2 == 0)
    {
        UIViewController *nextViewController = [self pageViewController:self.pageViewController viewControllerAfterViewController:currentViewController];
        viewControllers = [NSArray arrayWithObjects:currentViewController, nextViewController, nil];
    }
    else
    {
        UIViewController *previousViewController = [self pageViewController:self.pageViewController viewControllerBeforeViewController:currentViewController];
        viewControllers = [NSArray arrayWithObjects:previousViewController, currentViewController, nil];
    }
    //Now, set the viewControllers property of UIPageViewController
    [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL];

    return UIPageViewControllerSpineLocationMid;
}

}

4

2 回答 2

1

如果我理解得很好,那么在 ContentPageView.xib 文件中添加一个 imageView 并制作一个出口。将 ImageView 和标签设置为在所需页面上隐藏或可见。

于 2013-02-15T10:10:55.570 回答
0

以下步骤可能会有所帮助

  1. 在 ContentViewController 中保留 UILabel 和 UIImageView
  2. 在 modelArray 中添加 UIImage 或 NSString。
  3. 当您创建一个新的 ContantViewController 时,使用以下方法检查模型中的对象是图像还是字符串。
    if ([myObject class] == [UIImage class])
    {
    //HERE ASSIGN IT TO UIIMAGEVIEW.image
    }
    else
    {
    //HERE ASSIGN IT TO UILABEL.text
    }

如果您需要更多帮助,请发布....

对不起,如果这不是你要找的......

于 2013-02-15T10:15:34.720 回答