Iphone 如何在页面视图控制器中获取当前视图控制器
我想在页视图控制器中获取当前的视图控制器。如何做到这一点。它是否有要调用的委托或什么。如果您在任何UIView类(如UIButton、UITable或任何其他子类)中,该类是UIViewController.view(或其任何子视图。子视图。子视图…的子视图)的子视图 您可以检查superVew链中是否有UIViewController,并在找到UIViewController时停止 大概是这样的:Iphone 如何在页面视图控制器中获取当前视图控制器,iphone,objective-c,ios,ipad,uiviewcontroller,Iphone,Objective C,Ios,Ipad,Uiviewcontroller,我想在页视图控制器中获取当前的视图控制器。如何做到这一点。它是否有要调用的委托或什么。如果您在任何UIView类(如UIButton、UITable或任何其他子类)中,该类是UIViewController.view(或其任何子视图。子视图。子视图…的子视图)的子视图 您可以检查superVew链中是否有UIViewController,并在找到UIViewController时停止 大概是这样的: UIViewController* controllerFound = nil; for (UI
UIViewController* controllerFound = nil;
for (UIView* next = [self superview]; next; next = next.superview) {
UIResponder* nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]]) {
controllerFound = (UIViewController*)nextResponder;
}
}
我也有同样的问题。看起来当前控制器是您更改页面后列表中的最后一个控制器。这对我很有用,但我不知道这是否总是真的
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
UIViewController *vc = [pageViewController.viewControllers lastObject];
}
尝试在pageViewController.ViewController中获取第一个视图控制器
if let vc = pageViewController.viewControllers?[0] {
... vc is current controller...
}
如果要处理页面更改,请使用委托方法:
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
if let vc = pageViewController.viewControllers?[0] {
... vc is current controller...
}
}
也许这可以帮助我,我不知道这一点,因为我没有使用这种方法。我需要在“页面视图控制器”中查找,您是否可以发布任何与此相关的内容。@mnl失败的是什么?这对我来说很有效,所以如果有一个bug我想知道=)如果我转到另一个视图,而不是开始的视图,那么这会起作用,并且当调用该委托时,除此之外,委托将不会有帮助,如果我根本没有导航使其工作,您需要将UIPageViewControllerDelegate添加到头文件中,并在viewDidLoad中使用如下内容设置代理:self.pageViewController.delegate=self;