【发布时间】:2018-02-22 07:55:20
【问题描述】:
我有一个要求,比如在视图内部我需要推送一些其他视图控制器。为此,我尝试添加一个窗口作为该特定视图的子视图,然后将所需的视图控制器提供给该窗口的根视图控制器。它显示正确,但 rootviewcontroller 从屏幕 (0, 0) 点开始,而不是在窗口内。
在这张图片中,红色是视图控制器,灰色是原点 (0, 100) 的视图。以下是我尝试过的代码。
UIWindow *insideWindow = [[UIWindow alloc] initWithFrame: CGRectMake(0, 100, _windowView.frame.size.width, _windowView.frame.size.height)];
insideWindow.backgroundColor = [UIColor yellowColor];
insideWindow.windowLevel = UIWindowLevelNormal;
insideWindow.hidden = NO;
insideWindow.clipsToBounds = YES;
insideWindow.bounds = _windowView.bounds;
_windowView.clipsToBounds = YES;
[_windowView addSubview: insideWindow];
SecondViewController *s = [SecondViewController new];
s.view.bounds = CGRectMake(0, 100, _windowView.frame.size.width, _windowView.frame.size.height);
insideWindow.rootViewController = [SecondViewController new];
[insideWindow makeKeyAndVisible];
如何添加多个 UIWindows 不是重复的。在这里我可以添加多个窗口但问题是在窗口内部视图控制器设置不正确。
【问题讨论】:
-
@SaadChaudhry 这可能不是重复的问题。你能在问题中检查我的补偿吗?
-
可能重复并不意味着它是一个精确的单词到单词重复,但在其他问题或答案中,您可能会找到相关的解决方案。
-
您确定要添加 UIWindow 而不是简单地以模态方式推送的控制器,甚至是视图吗?我认为您的 UIWindow 方向错误;为什么你需要它是那样,而不是别的?
-
@GilSand 感谢不同的方向。事实上,我在那里使用了一些第三方框架,我只能访问视图,在那个空间中我想推送几个视图控制器,这就是我选择这种方式的原因。但它没有按预期工作。
标签: ios objective-c uiwindow