首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

警告:尝试在视图不在窗口层次结构中的ViewController上显示ViewController (w/ UIAlertController)

这个警告是由于在视图层次结构中尝试在一个不可见的视图控制器上显示另一个视图控制器(包含UIAlertController)而引起的。这通常是由于在视图控制器的生命周期中的错误时机或错误的方法调用导致的。

为了解决这个警告,可以采取以下步骤:

  1. 确保在正确的时机和正确的方法中显示视图控制器。通常,在视图控制器的生命周期方法中,如viewDidLoad、viewWillAppear或viewDidAppear中显示其他视图控制器是安全的。
  2. 确保在正确的视图层次结构中显示视图控制器。如果要在当前视图控制器上显示另一个视图控制器,确保当前视图控制器已经添加到窗口的视图层次结构中。
  3. 检查代码中的逻辑错误。确保没有在不可见的视图控制器上显示另一个视图控制器的代码。

总结: 警告"尝试在视图不在窗口层次结构中的ViewController上显示ViewController (w/ UIAlertController)"是由于在不可见的视图控制器上显示另一个视图控制器而引起的。为了解决这个问题,需要确保在正确的时机和正确的方法中显示视图控制器,并确保当前视图控制器已经添加到窗口的视图层次结构中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS学习——获取当前最顶层ViewController

iOS开发过程,我们经常性会需要获取当前页面的ViewController,然后利用ViewController进行一些操作,例如在最顶层ViewController展示一个UIAlertController...,或者最顶层ViewControllerpresent另一个ViewController,或者进行其他操作。...寻找过程,要分别考虑当前ViewController是UITabBarController和UINavigationController情况,同时还要考虑到当前ViewController是否通过...作为导航结构,以及可能present出新VC,其实如果用storyboard方式写UI的话就很清晰,类似树结构,再利用递归找到当前视图。...) UIViewController * _Nullable currentVC; //当前屏幕显示viewcontroller -(UIViewController *)currentVC{ UIViewController

6.4K50

iOS开发常用之 HUD 弹窗

MMProgressHUD - 设置HUD出现和消失方式(包括上下,左右,淡入淡出,放大缩小等等),设置HUD内容(可以HUD中加入帧动画,动态图片等等),设置HUD出现时底部覆盖层颜色,等等...DQAlertView - 扁平化样式不错。 HHAlertView - 一个简单alertview有三种样式,有成功,失败,和警告三种样式,支持代表和阻止两种回调。...STModalDemo - 弹出视图(通知,提示,选择,窗口)。...PCLBlurEffectAlert.swfit - 细节定制较丰富弹出警报窗口组件。...CustomPopOverView - 自定义弹出视图,内容支持传一组菜单标题,也支持自定义view,或者自定义viewController,支持任意按钮触发,会显示在按钮底部,也支持切换按钮对齐方式

4.2K20

IOS开发之视图视图控制器

视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要东西。在学习视图这一块东西时候,感觉和Java SwingPanel差不多。...UIWindow可以不借助于父类视图显示屏幕,其余视图都需要添加到父视图中才能显示。...窗口是用来显示视图,下面我们将会结合着实例来具体学习一下IOSView和ViewController         1.首先我们需要建一个EmptyProject来测试我们View和ViewController...我们空工程文件结构如下,我们只需AppDelegate.m添加我们视图,还是那句话为了更好理解我们视图,所有视图创建和配置我们都用代码编写。 ?         ...视图层大致分为下面的几类         1.容器视图                 容器视图用于增强其他视图功能,或者为视图内容提供额外视觉分隔,比如UIScorllView类用于显示因内容太大而无法显示一个屏幕视图

1.7K70

iOS14开发-UIViewController

介绍 UIViewController 可以理解为 App 界面,负责管理 UIView 显示内容和用户交互,主要有以下作用: 负责创建和管理 UIView。 响应用户与视图交互。...被代理对象(需要传值 UIViewController) 声明协议,协议定义传值方法,方法参数个数与类型取决于需要传值个数和类型。 UIViewController 声明一个代理属性。...接收值 UIViewController 实现需要传值 UIViewController 闭包属性,闭包实现拿到传过来值进行使用。...常见ViewController UIAlertController 警告(对话框)控制器。 用一个对话框进行信息提示,通过模态形式弹出。 有两种样式:alert和actionSheet。...UINavigationItem是 UIViewController 属性,用于配置当前 UIViewController 显示时UINavigationBar显示内容。

2.3K20

Mac开发跬步积累(六): 响应链NSResponder Chain

对于键盘事件, 响应是从窗口第一响应者开始; 对于鼠标/触控板事件,响应是从用户操作view开始; 如果事件消息最初没有响应,那么响应链将按照视图层级结构依次传递消息,直到窗口对象(NSWindow...;它通常是整个响应链第一个响应者对象,NSWindow对象最初始第一响应者是它自己,当window显示屏幕时,也可以手动设定它第一响应者对象(使用NSWindow对象makeFirstResponder...ViewController实现键盘按下事件/鼠标点击事件 并在视图加载完毕后,输出响应链信息: ?...显然ViewController我们已经实现了keyDown:方法;回答这个问题之前,我们先看一下网络普遍关于NSViewController监听键盘事件方法:使用NSEvent添加本地事件监听...窗口第一响应者 根据控制台信息,我们可以看出键盘事件第一响应者是当前窗口对象NSWindow,键盘事件整个响应链,ViewController是被忽略,所以ViewController

2.3K10

iOS学习——UIAlertController详解

开发,弹出提示框是必不可少。...UIAlertControlleriOS8.0出现一种统一提示风格界面,代替原来UIAlertView和UIActionSheet两种类别。...UIAlertController提示器使用分为三步,创建UIAlertController提示器对象-->配置UIAlertController提示器按钮-->显示UIAlertController...添加文本框   上面我们讲到了如何在UIAlertController提示器添加按钮,但是有时候,我们需要在提示器添加一个或多个文本框让用户填写一些信息,UIAlertController也提供了一个方法直接可以提示器添加文本框...提示器显示   UIAlertController提示器显示则很简单,从提示器类名UIAlertController可以看出,提示器是一个viewController,因此,要显示提示器,我们一般是是当前

2.7K170

【IOS开发基础系列】Storyboard专题

因为所有的窗口设计一个故事板文件,你会更容易把握每次改动带给每个窗口变化。     2、故事板可以描述各个窗口之间转换。这种转换叫做 segue(连接)。...2 使用 2.1 结合xib使用     思路:         APP跳转流程故事板呈现,但是VC事件处理与详细视图设计放在xib文件。     ...以这种方式,你可以创建超过 5 个ViewController 给TabBarController,它将自动Tabbar 显示 More... 按钮。...文档树这些关系显示如图中所示:         注意 TableViewController 被加入了一个navigationBar。...以前,如果你要定制表视图单元格,你要么代码向cell对象添加自己 subviews ,要么新建一个 nib 然后从nib 中加载你自己 cell。

91530

Mac开发跬步积累(二):NSViewController 转场动画精耕细作

内嵌同一个窗口中形式弹出新ViewController open func presentViewControllerAsSheet(_ viewController: NSViewController...transition方法仅支持有父子关系控制器结构. transition由父控制器super ViewController进行调用....从StoryboardCustomView 连线控件属性,用来作为容器视图,显示每个ChildViewController内容 @IBOutlet weak var containView...动画效果 Summary(总结) macOS,控制器转场切换无论是presentViewController方式或者transition方式,本质都是将要显示控制器视图View,通过addSubView...自定义present 动画时,需要注意事件穿透问题: 由于显示出来控制器视图(Controller View)是通过addSubView方式添加到容器视图中,因此控制器视图(Controller

2.6K40

Mac 开发之 做一个JSON转模型属性小公举

,然而这种新插件方式制作插件,在运行时与Xcode不在同一个进程,因此失去了原来许多便捷地方(当然,安全性更好了,这是一个取舍结果) 基于上面的原因,加上继续学习Mac开发练习,我们可以手动尝试自己做个工具...为了对错误结果有个更好提示,工程,我们引入了DJProgressHUD框架(类似iOSHUD效果),GitHub下载地址是DJProgressHUD ,有兴趣可以读一下源码,对学习Mac...由于窗口有两个水平方向文本视图,因此我把窗口最小初始化size设置为(900,323),这样整个界面看起来是一个水平长方形,便于操作和阅读 设置window最小size 3....StoryBoard设置视图controller为ViewController,这样我们就可以通过ViewController类来管理控制器和view了 设置视图控制器类型ViewController...选中ViewController.m文件,进行视图初始化设置 初始化设置 这里有个细节需要注意: Mac OSX,使用NSTextView控件进行文本输入时,系统会自动将英文双引号变为中文双引号

1K20

Mac开发基础练习:制作一个状态栏(NSStatusBar)App(一)

添加图片资源到项目工程 如果没有出错,运行项目,你应该看到一个空窗口,而且屏幕右上角已经出现了我们应用常驻标志^_^,是不是感觉很容易啊~ ?...项目运行结果 这时你点击状态栏图标,它没有任何反应,因为我们还没有给它添加事件响应方法。我们希望点击它能够弹出一个视图显示内容或者功能,下面我们就来接着实现它。...NSPopover 提供了屏幕内容视图显示额外信息内容一种方式(其实这个类似于iPad开发是常见UIPopoverPresentationController),它定位相对与现有内容。...ViewController添加popover属性,并在viewDidLoad中进行初始化和配置。 1.4 现在ViewController.m实现代码: ?...设置contentViewController 现在再次运行工程,如果没有错误,我们就可以看到大致类似下面的这样界面了,这样我们就实现了可以系统状态栏添加应用常驻标志,点击它,并可以弹出一个内容展示窗口

2.1K20

iOS开发系列——Storyboard

到目前为止我们还没有解释我们程序是如何显示默认视图界面的。...: a.png 在这个界面整个核心就是右侧视图控制器ViewControllerViewController中有一个视图UIView,这个视图用来放置其他用户操作控件。...视图控制器左侧箭头表示这个视图控制器是个主视图控制器,程序启动之后默认就会直接显示这个视图控制器视图。我们可以项目属性通过修改“Main Interface”属性来修改主视图控制器。...(Interface Builder中点击左下角“Show Document outline”显示控件结构树,选中相应控件按住Ctrl键拖拽到代码属性或方法) e.gif 3....(Interface Builder中点击左下角Show Document outline显示控件结构树,选中相应控件右键拖拽到代码属性或方法) 5.对于前面几种方法其实我们还可以直接从代码拖拽到控件上面

3.2K40

史上最详细iOS之事件传递和响应机制-原理篇

你如果是viewController.m文件重写touchBegan:withEvent:方法,相当于处理viewController触摸事件,因为viewController也是继承自UIResponder...主窗口会在视图层次结构中找到一个最合适视图来处理触摸事件,这也是整个事件处理过程第一步。 找到合适视图控件后,就会调用视图控件touches方法来作具体事件处理。...3.窗口会在视图层次结构中找到一个最合适视图来处理触摸事件。(至此,第一步已完成) ?...如果当前view是控制器view,那么控制器就是上一个响应者,事件就传递给控制器;如果当前view不是控制器view,那么父视图就是当前view上一个响应者,事件就传递给它视图 2>视图层次结构最顶级视图...2.UIApplication会从事件队列取出最前面的事件,把事件传递给应用程序窗口(keyWindow)。   3.主窗口会在视图层次结构中找到一个最合适视图来处理触摸事件。

10.8K70

【IOS开发基础系列】UIViewController专题

当程序一部分向controller请求view指针且view不在内存时,view会进入加载循环,controller会将view加载入内存。         ...当程序接收到内存警告时,controller会尝试卸载view,卸载循环中,controller尝试释放它view对象并返回到原始无view状态(当它不在屏幕显示时,这个条件判断到底是根据view...如果你ViewController保存着view子view引用,那么,早期iOS版本,你应该在这个函数来释放这些引用。...,比如在转场过程中所参与视图控制器和视图相关属性。...现在SDK,如果当前VC是被显示的话,这个消息会被直接转发到显示VC去。但是这并不是一个好实现,违反了程序设计哲学,也很容易掉到坑里,具体案例可以参看这篇文章评论。

43130

ViewController及View生命周期1. 起因2. Controller生命周期3. View生命周期4. 内存警告

这让永远都只viewDidLoad写作童鞋们情何以堪吶。 这些其实都和生命周期有关,和viewController以及view各种加载顺序有关。这篇文章就小小撸一下这中间关系和顺序。 2....下面做一个小测试,打印不同方法执行过程,界面的长宽属性如何,结果如下: //viewDidLoad w:320.000000 h:568.000000 //viewWillAppear w:...- (void)didMoveToWindow; 某个视图层次一改变,该视图就会收到一次回调。...didMoveToSuperview:会通知相关视图他们上级视图已经变化。添加和移除都会调用,所以要判断 superView在不在。...willMoveToWindow:视图移动前发出回调。 willRemoveToSubview:回调通知父视图视图即将被删除 4. 内存警告 首先要判断一下,当前view有没有被显示

1.3K30

iPad Safari多窗口视图分析和实现思路

在手机上,由于屏幕空间有限,点击窗口管理按钮可以看到手机上采用了一种视图层叠效果,有点模拟从一个实体文件夹翻查文件感觉。...[iPhone Safari 窗口管理] 而在iPad ,同样按钮打开视图是一个大纲视图,所有的网页窗口平铺展示,就像桌面平台窗口管理 [iPad Safari 窗口管理] 我们再认真观察一下...另外我们可以看到缩略图顶部有一个标题栏和一个关闭按钮,双指缩放放大过程我们可以看到一个临界点,超过这个临界点时候标题栏会渐隐,露出原本页面截图顶部搜索栏和标签栏。...具体来说,从某个具体页面切换到大纲视图之前,对页面做一个截图,ScrollView 也不再加载具体 ViewController view 而是仅放置静态截图。...从 Safari 表现来看它极有可能也是采用截图方式,我们实测网页动态播放视频到了大纲视图并不会继续动态播放,此外 Safari 进程被杀后重启,大纲视图里仍有之前截图,可以推测是通过静态截图并落地方式实现

4K30

iOS 开发小技巧

TICK //do your work here TOCK view 锯齿化问题 使用view缩放时候,layer.border.width随着view放大,会出现锯齿化问题,解决这个问题需要设置这个属性...UINavigationController 有个 Property,是一个存储所有 push 进 navigationcontroller 视图集合,是一个栈结构,当我们要 pop 到某个 ViewController...popToViewController:viewController animated:YES]; } } 通过 View 获取 ViewController 为了做到数据与视图分离,我们一般会将一个页面的局部视图以自定义...UIView 方式独立出来,如果在该视图中有触发事件(事件处理不需要父视图上下文),就会遇到 UIView 获取 UIViewController 情况,可以写一个 UIView 范畴 UIView...:8888/ios_team/zuchelib_category.git', :tag => ‘0.1.2’ 如果在自定义框架下,我们使用#if DEBUG这种定义模式来区分,那么默认Pods是无效

76030
领券