标签: uipageviewcontroller

PageViewController 显示黑屏

在故事板中我有一个UIPageViewController,这是我的代码

class ReservedTimesViewController: UIPageViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

extension ReservedTimesViewController: UIPageViewControllerDataSource {
    func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
        let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ReservedTimesTableViewController")
        print(controller)
   return controller
    }

    func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
        let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ReservedTimesTableViewController")
        print(controller)
        return controller
    }
Run Code Online (Sandbox Code Playgroud)

这是我的ReservedTimesTableViewController故事板 在此输入图像描述

但我遇到黑屏。为什么它不能正常工作?

xcode ios uipageviewcontroller swift

5
推荐指数
1
解决办法
2464
查看次数

setViewControllers 不起作用

我正在尝试使用 NEXT 按钮更改 UIPageViewController 的当前 ViewController。因此,我使用委托调用 mainViewController 中的 containerViewController 中的函数。但它不执行 setViewControllers 行。

在这里你可以看到我的代码:

这是我使用委托调用的方法:

func forwardPage() {
    print("Start")
    currentPage += 1
    print(vcs[currentPage])
    self.setViewControllers([vcs[currentPage]], direction: .forward, animated: true) { (true) in
        print("Done")
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的代表:

protocol WalkthroughViewControllerDelegate {
   func forwardPage()
   func currentIndex() -> Int
}
Run Code Online (Sandbox Code Playgroud)

这是连接到我的 NEXT 按钮的功能:

@IBAction func nextButtonTapped(_ sender: Any) {
    if let index = delegate?.currentIndex() {
        print("Here... \(index)")
        switch index {
        case 0...1:
            print("Forwarding...")
            delegate?.forwardPage()
        case 2:
            dismiss(animated: true, completion: nil)
        default: break
        }
    }

    updateUI()
} …
Run Code Online (Sandbox Code Playgroud)

xcode ios uipageviewcontroller uicontainerview swift

5
推荐指数
1
解决办法
2670
查看次数

RTL语言uipageviewcontroller动画

我知道这个问题是典型的,并且在论坛上被多次询问,但我仍然无法解决我的问题,所以如果任何机构可以帮助那将是伟大的:)

我正在用阿拉伯语创建一个书籍应用程序,我需要从右到左执行uipageviewcontroller的转换.这就是我要说的.

还有一件事(如果我没有很好地解释我自己)我有这个线程的确切需要:如何更改UIPageViewController分页卷曲动画的方向,但我无法设法他们谈到的解决方案,所以如果有人可以解释我或给我一个链接,我可以有如何做到这将是绰绰有余:)

iphone right-to-left ios5 uipageviewcontroller

4
推荐指数
1
解决办法
1760
查看次数

当方向设置为水平时,UIPageViewController响应垂直平移

我已经烧了几个小时.我已经初始化UIPageViewControllerUIPageViewControllerNavigationOrientationHorizontal,但由于某种原因viewControllerBeforeViewController被称为当用户锅垂直.

此外,当发生这种情况时,没有页面翻转,didFinishAnimating:didFinishAnimating:previousViewControllers:transitionCompleted根本不会被调用.这意味着页面视图控制器知道这是一个垂直运动..

这是初始化代码 -

- (void)initPageViewController
{
    self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl
                                                              navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal 
                                                                            options:nil];
    self.pageViewController.delegate = self;
    self.pageViewController.dataSource = self;

    [self addChildViewController:self.pageViewController];
    [self.view addSubview:self.pageViewController.view];

    // Set the page view controller's bounds using an inset rect so that self's view is visible around the edges of the pages.
    self.pageViewController.view.frame = self.view.bounds;

    [self.pageViewController didMoveToParentViewController:self];

    // Leave only pan recognizers enabled, so buttons positioned inside a page would work.
    for (UIGestureRecognizer *gr in self.pageViewController.gestureRecognizers)
    { …
Run Code Online (Sandbox Code Playgroud)

uipageviewcontroller

4
推荐指数
1
解决办法
1567
查看次数

如何在点击UIButton后在UIPageViewController中添加新的视图控制器?

我想知道如何实现会影响UIPageViewController模型的按钮.例如,我希望我的UIPageViewController模型数组加载其中的单个对象,当点击一个按钮时,将添加一个新的视图控制器,并自动翻转页面或类似的东西(如在Notes应用程序中).删除用户正在查看的当前对象也是如此.

到目前为止,我尝试通过向我的根视图控制器实现一些IBActions但到目前为止没有运气.

以下是我实现ViewController类的方法:

@implementation ViewController

@synthesize modelArray = _modelArray;
@synthesize pageVC = _pageVC;

#pragma mark - UIPageViewControllerDataSource Methods

// Returns the view controller before the given view controller. (required)
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
      viewControllerBeforeViewController:(UIViewController *)viewController
{
    NSUInteger currentIndex = [self.modelArray indexOfObject:[(ContentVC *)viewController     labelContents]];
    if(currentIndex==0)
        return nil;

    ContentVC *cVC = [[ContentVC alloc] init];
    cVC.labelContents = [self.modelArray objectAtIndex:currentIndex-1];
    return cVC;
}

// Returns the view controller after the given view controller. (required)
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
   viewControllerAfterViewController:(UIViewController *)viewController
{
    NSUInteger currentIndex = …
Run Code Online (Sandbox Code Playgroud)

model uibutton ios uipageviewcontroller

4
推荐指数
1
解决办法
1万
查看次数

UIPageViewController与不同的ViewControllers,正确的方法?

基本上,我有一个表视图控制器和一个普通的视图控制器,我想这样做,以便我可以在视图控制器之间滑动,如在应用程序的主屏幕上(明显相同类型的视图控制器).

但我发现的是,UIpageviewcontroller当您有多个相同类型的视图时viewcontroller,例如在图片之间滑动,可以使用它,您可以在类中设置一个索引,并设置与索引相关的图像数组并进行设置那样.

但我正试图在这个设置中获得不同的视图控制器.现在它是两个但肯定会达到4左右.

UIPageViewController正确的设置方式还是其他方式.

编辑:下面添加的代码

    //
//  ViewController.m
//  testb
//
#import "MainPostController.h"
#import "MainTableViewController.h"
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize pageViewController;
@synthesize indexValue = _indexValue;

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.indexValue= 1;
    NSLog(@"main intitated");

    // Do any additional setup after loading the view, typically from a nib.
    self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"];
    self.pageViewController.dataSource = self;

    MainTableViewController *tvc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainTableViewController"];
    MainPostController *pvc;
    NSArray *viewcontrollers =[NSArray arrayWithObjects:tvc, pvc, nil];

    [self.pageViewController setViewControllers:viewcontrollers direction:UIPageViewControllerNavigationDirectionForward …
Run Code Online (Sandbox Code Playgroud)

objective-c ios uipageviewcontroller

4
推荐指数
1
解决办法
1万
查看次数

使用自定义pageControl时,在UIpageviewController中获取索引号较慢

在结束这个问题之前,我只是看到过去两天我面临一个严重的问题.

我正在关注UIPageViewController与故事板教程.

我试着开发我的UIPageviewController.我要展示一些用户照片.我不想在底部显示apagecontrol,所以我创建了一个自定义页面控件.当我尝试将索引设置为UIPageControl时,它无法正常工作 - 有些延迟有时会达到第5页而只是更新,因此计数不正确

这是我的数据源:

 -(UIViewController*)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{

    NSUInteger index = ((BMEnlargePhotoPageView*) viewController).pageIndex;
    [self.enlargePhotoPageControl setCurrentPage:index];

    if((index == 0 ) || (index==NSNotFound)){

        return nil;

    }
    index--;



    return [self viewControllerATindex:index];


}




-(UIViewController*)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{

    NSUInteger index = ((BMEnlargePhotoPageView*) viewController).pageIndex;
    [self.enlargePhotoPageControl setCurrentPage:index];


    if(index==NSNotFound){

        return nil;
    }

    index++;


    if(index==[self.userImages count])
    {
        return nil;
    }


    return [self viewControllerATindex:index];

}


- (BMEnlargePhotoPageView*)viewControllerATindex:(NSUInteger)index
{
       if(([self.userImages count]==0) || (index >= [self.userImages count])){

              }

    BMEnlargePhotoPageView *PageContentViewControl = [self.storyboard instantiateViewControllerWithIdentifier:@"EnlargePhoto"];

    PageContentViewControl.imageFIle =self.userImages[index];
    PageContentViewControl.pageIndex …
Run Code Online (Sandbox Code Playgroud)

ios uipageviewcontroller

4
推荐指数
1
解决办法
5281
查看次数

禁用UIPageViewController中的滑动手势

我在一个ViewController中有3个ViewControllers

ViewPagerController = self - >它是一个viewController并具有UIPageViewController init

ProgramQuestionViewController =它基于ViewPagerController

QuestionViewController =我的内容视图它显示在ProgramViewController的中间

这是我的ViewPagerController

@interface ViewPagerController () <UIPageViewControllerDataSource, UIPageViewControllerDelegate, UIScrollViewDelegate,UIGestureRecognizerDelegate>
{
NSMutableArray *dataAnswers;
}

@property UIScrollView *tabsView;
@property UIView *contentView;

@property UIPageViewController *pageViewController;
@property (assign) id<UIScrollViewDelegate> actualDelegate;
@property (assign)bool isValidPage;

@property (assign)bool isSonraki;
// Tab and content cache
@property NSMutableArray *tabs;
@property NSMutableArray *contents;

// Options
@property (nonatomic) NSNumber *tabHeight;
@property (nonatomic) NSNumber *tabOffset;
@property (nonatomic) NSNumber *tabWidth;
@property (nonatomic) NSNumber *tabLocation;
@property (nonatomic) NSNumber *startFromSecondTab;
@property (nonatomic) NSNumber *centerCurrentTab;
@property (nonatomic) …
Run Code Online (Sandbox Code Playgroud)

objective-c ipad uigesturerecognizer ios uipageviewcontroller

4
推荐指数
1
解决办法
7234
查看次数

pageViewController上的背景图像反向重叠

我有一个pageViewController显示每个索引的背景图像.它可以从左向右(向前)轻扫,但是当您反向滑动时,背景图像会相互重叠.在我实现背景图像之前,每个VC上的UI工作正常和反向,所以我知道它是背景图像.此外,如果我改为page curl而不是scroll在我的storyboard反向工作正常,只是不起作用scroll.这显然是一个已知的错误(从UIPageViewController中删除视图控制器)但是我需要一个Swift解决方案.

pageviewController:

 func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {

        guard
            let currentPageViewController = viewController as? SinglePageViewController,
            let currentIndex = indexOfForecast(currentPageViewController.forecast!) as? Int where currentIndex != 0 else { return nil }  //fixed bug where index was -0 only on scroll

        return viewControllerAtIndex(currentIndex - 1)

    }

    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
        guard
            let lastForecast = forecasts?.last,
            let currentPageViewController = viewController as? SinglePageViewController, …
Run Code Online (Sandbox Code Playgroud)

ios uipageviewcontroller swift

4
推荐指数
1
解决办法
2232
查看次数

禁用UIPageViewController Swipe - Swift

在我的项目中,我使用UIPageViewController在5个子UIViewController之间滑动.在一些子视图控制器中,我需要禁用UIPageViewController的滑动手势,因此当用户滑动它时不会更改为其他视图.那我怎么能禁用子视图控制器的滑动?

感谢您的帮助.谢谢

xcode uipageviewcontroller swift

4
推荐指数
2
解决办法
5466
查看次数