使用按钮将 childViewController 加载到滚动视图父级
Posted
技术标签:
【中文标题】使用按钮将 childViewController 加载到滚动视图父级【英文标题】:Load childViewController to scrollview parent with a button 【发布时间】:2013-12-02 12:55:14 【问题描述】:我正在使用 PageViewController (https://www.cocoacontrols.com/controls/pageviewcontroller) 创建一个类似于 Wired 的杂志应用程序。
我在 CustomPagerViewController 上使用了这段代码来加载子视图:
- (IBAction)btn_index:(id)sender
NSInteger currentPage = 3;
CGPoint offset = CGPointMake(currentPage * self.scrollView.frame.size.width, 0);
[self.scrollView setContentOffset:offset animated:YES];
但是我需要 indexviewcontroller 上的几个按钮来加载正确的视图,当我使用相同的代码时,
在类型的对象上找不到属性“scrollView” 'Pag4_5ViewController *'
我已经搜索并尝试了几种方法,但都是徒劳的。
有人知道如何解决这个问题吗?
【问题讨论】:
“scrollView”是 Scrollview 的一个出口吗?你合成了吗? @Abhijit Chaudhari 是的,scrollView 是“@property (nonatomic, strong) IBOutlet UIScrollView *scrollView;”我已经在 PagerViewController 上合成了它。实际上我已经使用了链接中的 PagerViewController.h 和 .m。 您在哪里定义 btn_index 操作?什么是“Pag4_5ViewController”。 @AbhijitChaudhari btn_index 是在我杂志的索引页 Pag4_5ViewController 中定义的。我需要几个按钮来“加载”正确的杂志页面而不会丢失滚动 您使用了来自PageViewController 的PagerViewController.h
和PagerViewController.m
,但Pag4_5ViewController
是什么?它是PagerViewController
的子类?还是你重写?属性scroll
在Pag4_5ViewController.h
文件中声明?您的错误消息表示 Pag4_5ViewController
部分中未在 @interface
部分中声明的属性 scroll
和超类,或在超类中声明为 private
。
【参考方案1】:
找到聊天解决方案后,需要修复。问题是 self
在此上下文(Pag4_5ViewController.m 文件)中指向 Pag4_5ViewController 的实例,并且需要访问类 CustomPagerViewController
实例的方法。熟悉项目后找到了解决方案。以及下面给出的实施例之一:
添加到 Pag4_5ViewController 类(和其他类)行:
#import "CustomPagerViewController.h"
并将代码更改为这样的:
- (IBAction)btn_index:(id)sender
CustomPagerViewController *parent = (CustomPagerViewController *)[self parentViewController];
//page number where the transition will be accomplished
NSInteger currentPage = 3;// 3 in Pag4_5ViewController.m file do nothing, because it is an index of the same page. But it be correct work for other pages.
CGPoint offset = CGPointMake(currentPage * parent.scrollView.frame.size.width, 0);
[parent.scrollView setContentOffset:offset animated:YES];
注意:这只是可行的代码变体之一。但可能还有其他人。
【讨论】:
非常感谢鲁斯兰以上是关于使用按钮将 childViewController 加载到滚动视图父级的主要内容,如果未能解决你的问题,请参考以下文章
将 ChildViewController 添加到 UIAlertController
从 ChildViewController 呈现 ModalView
自动将事件从 ChildViewController 传递到 parentViewController
UIKit Dynamics - 从 ChildViewController 引用 UIDynamicAnimator 的问题