gpt4 book ai didi

ios - UIPageViewController 作为 subview 将禁用 iOS 中的主视图事件

转载 作者:行者123 更新时间:2023-11-29 02:54:00 25 4
gpt4 key购买 nike

我正在尝试使用 UIPageViewController 创建具有三个单独的 UIViewController 的演练屏幕。总之,我的 Storyboard中有四个 View Controller 和一个页面 View Controller 。一个 View Controller 充当基本 View (XYZViewController.h/m),其他三个充当在基本 View Controller 内加载的 subview 。下面显示了 XYZViewController.h 的大致显示方式。

#import <UIKit/UIKit.h>
#import “XYZPageContentViewController.h"
#import "XYZPageTwoContentViewController.h"
#import "XYZPageThreeContentViewController.h"

@interface XYZViewController : UIViewController <UIPageViewControllerDataSource>

@property (strong, nonatomic) UIPageViewController *pageViewController;

@end

以下代码片段显示了XYZViewController.mviewDidLoad方法

- (void)viewDidLoad
{
[super viewDidLoad];

self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"];
self.pageViewController.dataSource = self;

XYZPageContentViewController *startingViewController = [self viewControllerAtIndex:0];

NSArray *viewControllers = @[startingViewController];

[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

self.pageViewController.view.frame = CGRectMake(0, 60, self.view.frame.size.width, self.view.frame.size.height - 60);

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

bottomView.layer.zPosition = 1;
startBtnOutlet.layer.zPosition = 1;
}

实际上,加载 subview 和演练工作正常。不起作用的是,我在基本 View 中声明的事件内的按钮触摸。

App first interface

如图所示,屏幕底部有“重新开始”按钮。起初,当我将页面 Controller View 设置到屏幕底部并且不使用 z-index 选项时,该 View 甚至没有显示。

也就是说有这条线

self.pageViewController.view.frame = CGRectMake(0, 60, self.view.frame.size.width, self.view.frame.size.height - 60);

评论以下行。

// bottomView.layer.zPosition = 1;
// startBtnOutlet.layer.zPosition = 1;

我需要的是限制灰色 View 开始的页面 View Controller ,并在屏幕末尾提供 subview 。我可以如上所述限制页面 View Controller 框架,然后它也适用于我的所有演练屏幕。我能为此做什么?

我关注了this tutorial .有没有更好的方法来做到这一点?

最佳答案

找到解决方案。

将注释保留在代码行下方。

// bottomView.layer.zPosition = 1;
// startBtnOutlet.layer.zPosition = 1;

viewDidLoad 方法内的代码下方添加这一行

[self.view sendSubviewToBack:_pageViewController.view];

关于ios - UIPageViewController 作为 subview 将禁用 iOS 中的主视图事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24136379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com