iOS:UIPageViewController - 使用按钮跳转到下一页

2024-02-01

我在 PageViewController 中有一系列 VC,用户可以用手指从左到右导航。我需要添加按钮,这些按钮基本上执行与手指滑动相同的操作,即通过 VC 向左或向右移动 1 个。我怎样才能做到这一点?现在我正在使用这两种方法在用户滑动时动态设置 VC:

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

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

如果用户单击按钮,我是否可以做同样的事情?


您可以使用以下命令以编程方式设置当前显示的视图控制器和过渡动画setViewControllers:direction:animated:completion:在您的页面视图控制器上。

这是一个使用随机背景颜色呈现视图控制器的示例。您可以调整它以使用特定的视图控制器。

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.pvc = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
    self.pvc.view.frame = CGRectInset(self.view.bounds, 200, 200);
    [self.view addSubview:self.pvc.view];

    [self.pvc setViewControllers:@[[self randomVC]] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
}

-(UIViewController*)randomVC
{
    UIViewController *vc = [[UIViewController alloc] init];
    UIColor *color = [UIColor colorWithRed:arc4random_uniform(255)/255.0 green:arc4random_uniform(255)/255.0 blue:arc4random_uniform(255)/255.0 alpha:1];
    vc.view.backgroundColor = color;
    return vc;
}

- (IBAction)previousButtonPressed:(id)sender {
    [self.pvc setViewControllers:@[[self randomVC]] direction:UIPageViewControllerNavigationDirectionReverse animated:YES completion:nil];
}

- (IBAction)nextButtonPressed:(id)sender {
    [self.pvc setViewControllers:@[[self randomVC]] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS:UIPageViewController - 使用按钮跳转到下一页 的相关文章

  • TDD iOS 教程 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您好 我正在寻找非常好的 iOS TDD 教程 请您帮助我 什么是最好的 iOS TDD 书籍 博客
  • 允许的 APNS 持续连接数量是多少?

    我正在尝试编写服务器端代码来为我的应用程序发送推送通知 根据 Apple 的建议 我计划保留连接并根据需要发送推送通知 Apple 还允许打开和保留多个并行连接以发送推送通知 您可以与同一网关或多个网关实例建立多个并行连接 为此 我想维护一
  • iOS 中如何清除特定域的 cookie?

    我已经搜索了 StackOverflow 上的几乎所有问题来寻找我的问题的答案 我还没有找到任何有用的链接或教程来说明哪种方式最好清除特定域的 cookie 如果有人可以帮助我 请 我自己找到了解决方案 如果您想删除 UIWebView 中
  • 如何在 iOS 中查找蓝牙音频设备

    好的 我正在开发一个有趣的项目 该项目有一个障碍 我需要为我的 iOS 应用程序启用蓝牙音频支持 我遇到的障碍是我什至无法开始获取已连接的蓝牙音频设备的列表 即使我的 iPhone 5S 可以识别我的耳机 大约 3 4 岁的耳机 LG HB
  • 当我从我转向的视图控制器返回时,为什么我的 UITableView 的格式完全出错了?

    我有一个UITableView使用自定义单元格 其中有一些标签可以动态决定单元格的高度 当我点击一个单元格并转到一个新的视图控制器时 返回后所有单元格的格式完全混乱 我无法弄清楚是什么导致了它 这是细胞通常的样子 我对它们设置了一些非常基本
  • 如何在 iOS 上压缩 Realm DB?

    我想定期压缩 iOS 上的 Realm 实例以回收空间 我认为该过程是将数据库复制到临时位置 然后将其复制回来并使用新的default realm 文件 我的问题是Realm 其行为就像单例并回收对象 因此我无法真正关闭它并告诉它打开新的
  • iOS8 CoreData“使用未实现的初始化程序”

    我尝试运行我的应用程序时收到以下错误 致命错误 对类 rcresttest CatalogItem 使用未实现的初始化程序 init entity insertIntoManagedObjectContext 我可以通过将数据模型中的实体类
  • 是否有针对不同屏幕尺寸的单独故事板?

    基本上我已经完成了一个应用程序 我唯一的问题是 ATM 机应用程序在设计时只考虑了 4 英寸显示屏 当在 3 5 英寸模拟器上运行时 应用程序会丢失 0 5 英寸 显然 那么我的问题是 如何在 Xcode 5 中为不同的屏幕尺寸设置不同的故
  • XMPPFramework - 如何创建多用户聊天室?

    我如何使用XMPPFramework在iPhone中实现GroupChat 我尝试了以下代码 但房间没有创建 我如何知道房间是否创建 XMPPRoomDelegate没有被调用 当Stream断开连接时 调用handleDidLeaveRo
  • 网站在 iPhone 屏幕右侧显示空白区域

    我遇到问题http eiglaw com http eiglaw com iPhone 屏幕右侧显示约 25 像素宽的空白 边框 我在 stackoverflow 上研究了这个问题 这些帖子是相关的 但是当我尝试提供的各种解决方案时 我无法
  • 使用 iPhone 中的地图视图读取当前位置名称

    我读取了当前位置的纬度和经度值 然后成功将该位置固定在 iPhone 中 现在我想使用这个纬度和经度值读取该地名 我使用以下代码来读取查找当前位置 void mapView MKMapView mapView1 didUpdateUserL
  • 如何在 iOS 9 上可靠地检测是否连接了外部键盘?

    在 iOS 9 之前 确定是否连接外部键盘的最可靠方法是监听UIKeyboardWillShowNotification并使文本字段成为第一响应者 如中所述这个问题 https stackoverflow com questions 289
  • 持久化 UINavigationItem 的 rightBarButtonItem 属性

    这可能是一个愚蠢的问题 但是有可能保持正确的吗 UIBarButtonItem跨由一个管理的多个视图UINavigationController 我的一系列观点通常具有相同的权利UIBarButtonItem 但是当我将新视图推送到我的UI
  • 在 iOS 上将 NSString 转换为 NSDate 的正确方法?

    我一直在使用此方法将常规 NSString 对象转换为 NSDate 但尝试向 Apple 提交更新 但遭到拒绝 在 iOS 中还有什么其他方法可以做到这一点 NSString date str 2011 08 12T12 20 00Z N
  • UIButton的高亮状态由什么控制事件开始和结束

    我正在创建类似钢琴的视图UIButton作为钢琴键 什么UIControlEvents当按钮获得和失去突出显示状态时 我应该监听以获得回调吗 我试图创建子类UIButton并添加属性观察者highlighted并且运行良好 然而 有时我需要
  • 如何在 React Native 中构造 POST 请求主体,而不是使用字符串化的 json,而是使用 json?

    我正在努力用 React Native 替换一些本机代码 预期的 POST 请求 在AFNetworking in Charles应该是这样的 代码片段 NSError err NSData paramData NSJSONSerializ
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • 如何让按钮闪烁?

    我试图在扫描正确时将按钮的颜色 只是闪烁 闪烁 更改为绿色 在出现问题时将按钮的颜色更改为红色 我可以用这样的视图来做到这一点 func flashBG UIView animateWithDuration 0 7 animations s
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • iOS - UITableViewCell 使文本加粗

    我有一个字符串 NSString userInfo James Johnson james 我想做的就是大胆James Johnson并保留 james正常字体 所以我尝试过的是使用NSAttributedString但为了完成这个过程 我

随机推荐

  • PHP 在特定索引处插入

    我想将第一个索引处的数组元素移动到数组中的第五个索引 我怎样才能做到这一点 尽管目前对于您提出的问题至少有 2 个有效答案 但数组并不是保存频繁更改且排序很重要的列表的正确数据结构 随着数组大小的增加 这些解决方案将开始变得非常慢 正确的结
  • 按钮动作监听器

    好的 所以我制作了一个简单的程序 每次单击按钮时都会添加要计数器的值 现在 我想添加 自动 按钮功能 以在单击 自动 按钮时增加计数器的值 我遇到了问题 因为它不会在屏幕上呈现每个计数器值 而是在循环完成时更新值 这是我的代码 import
  • 用正则表达式替换第 n 个匹配项

    我正在尝试找到一种方法来替换更多比赛的第n场比赛 string one two three one one 如何定位第二次出现的 一 可以做这样的事情吗 string replace bone b gi 2 one 得到这样的东西 one
  • 迁移 Feign Load Balancer 实现以兼容 Spring cloud 2020.0.0

    我有以下与 Spring Cloud 一起使用的 Feign 负载均衡器的实现Hoxtan SR6依赖关系 import feign auth BasicAuthRequestInterceptor import org apache ht
  • C# GC 不释放内存[重复]

    这个问题在这里已经有答案了 我在 C 中度过了一段糟糕的时光 在我不再引用它之后 它没有为我保存在内存中的大型结构释放内存 我在下面添加了一些代码 这些代码展示了与我遇到的问题类似的问题 我想我一定是误解了关于 GC 的一些东西 因为我不确
  • C# 只读计算属性,它们应该是方法吗?

    我有几个实体具有计算字段 例如 TotalCost 现在我将它们全部作为属性 但我想知道它们是否实际上应该是方法 有这方面的 C 标准吗 public class WorkOrder public int LaborHours get se
  • gdb:记录一些东西而不是破坏?

    是否可以让 gdb 将某些内容记录到终端而不是中断它 例如 我想在某个方法上设置一个 断点 并让 gdb 在每次调用该方法时打印 self 以及参数 基本上我想将打印语句插入任意位置而不实际重新编译 感谢您的任何建议 这是我在这些有用的评论
  • 在 Visual Studio 中更改项目中所有图像的“构建操作”属性?

    我想知道是否有办法更新 Visual Studio 项目中所有图像的属性 我有多个嵌套的图像文件夹 我想将它们的 构建操作 属性从 资源 更改为 内容 目前我只能突出显示并选择 更改一个文件夹中的所有图像 当我有数百个文件夹和数千个图像时
  • update_sequence 更改了 cloudant 数据库中的语义?

    我使用 cloudant couchdb 我注意到数据库上的 changes 查询返回的 update sequence 不是数字 例如 437985 g1AAAADveJzLYWBgYM 更重要的是 响应不稳定 如果查询数据库 3 次 我
  • Tomcat v7.0 Server 中的 Apache Axis2 Web 服务运行时不支持服务项目 Test

    Tomcat v7 0 Server 中的 Apache Axis2 Web 服务运行时不支持服务项目 Test 为什么 请帮我 我刚刚遇到了同样的问题 事实证明 Axis2不喜欢Eclipse的3 0动态Web项目 只需创建一个新的动态W
  • 在Python中将一个类的方法安全地绑定到另一个类[重复]

    这个问题在这里已经有答案了 我知道我可以将一个函数附加到一个类并使其成为一个方法 gt gt gt def is not bound inst name print Hello s name gt gt gt gt gt gt class
  • 停止调用 JNI 函数的 Java 线程

    在这里我想停止我的线程或杀死我的线程它是在Java层创建的 该线程正在调用JNI函数 有时根据我的应用程序要求 我必须停止此操作JNI函数执行在某些条件下 如果它正在进行 否则不会 new Thread new Runnable Overr
  • 如何管理具有不同数据库模式的git分支?

    我有一个项目 需要开发一项新功能 该功能需要重新设计部分数据库 同时保持主要开发分支在旧模式上工作 您管理此类项目的最佳实践是什么 我考虑过在开发新功能时拥有一个单独的数据库 但意识到这需要将数据库配置签入存储库 这是不行的 我还有其他方法
  • Angular2 与 Material Design Lite

    我在我的 angular2 应用程序中添加了以下代码 以帮助 MDL 在应用程序中移动时重新注册组件 ngAfterViewInit componentHandler upgradeDom 尽管它似乎工作正常 如预期 但我收到以下错误 16
  • 什么可以解释调用 free() 时的堆损坏?

    我已经调试了几天的崩溃 该崩溃发生在 OpenSSL 的深处 与维护者讨论here https www mail archive com openssl dev openssl org msg38571 html 我花了一些时间进行调查 所
  • 基本数据类型(字符串和整数)如何在 Python 和 Perl 中实现

    最近我一直想知道我对字符串和整数等基本类型执行的各种操作在性能方面如何工作 并且我认为如果我知道这些基本类型是如何实现的 即我已经听说 Python 中字符串和整数是不可变的 这是否意味着任何修改字符串中一个字符的操作都是 O n 因为必须
  • sql中的特殊字符排序

    我有名为 联系人 的表 有名为 id 和 name 的列 各列值如下所示 ID Name 1 ABC 3 DEF 2 GHI JKL null MNO null PQR 我需要查询要在顶行列出的特殊字符 如下所示 ID Name JKL 1
  • CakePHP:Ajax 请求的控制器响应错误

    我正在使用 jQuery 向某些控制器操作发出 AJAX 请求 该请求是通过同一控制器中编辑操作视图中的按钮激活的 我的问题 Ajax 请求返回编辑视图的所有代码 包含所有表单和输入 而不是预期的数量 如果我将相同的 ajax 按钮放在添加
  • javascript 在 Rails 3.1 基于资产的应用程序中包含两次

    尽管问题的标题与之前的一些问题非常相似 但我的问题似乎有所不同 简要地 第一项在 js 清单中包含两次 这是我的全部 app assets javascript application jsRails 3 1 应用程序中的文件 requir
  • iOS:UIPageViewController - 使用按钮跳转到下一页

    我在 PageViewController 中有一系列 VC 用户可以用手指从左到右导航 我需要添加按钮 这些按钮基本上执行与手指滑动相同的操作 即通过 VC 向左或向右移动 1 个 我怎样才能做到这一点 现在我正在使用这两种方法在用户滑动