- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这是我的 View ( Controller )层次结构:
UITabBarController
(作为应用的 rootViewController
)UINavigationController
(作为 tabBar
选项卡之一的 viewController
)UIViewController
(作为 UINavigationController
的 rootViewController
)UICollectionView
(作为 subview )MyViewController.view
(作为 UICollectionView
的部分标题 View )因此,我需要从 MyViewController
中呈现一个模态视图 Controller 。我试过用
[self presentViewController:modalVC animated:YES completion:nil];
虽然它有效,但 Xcode 警告我“不鼓励在分离的 View Controller 上呈现 View Controller ”,这是正确的,因为 modalVC 只填充 Collection View 标题的 View ,这不是我的全屏之后。
我尝试过的所有其他选项:
UITabBarController *tb = (UITabBarController *)self.view.window.rootViewController;
[tb presentViewController:modalVC animated:YES completion:nil];
or...
UINavigationController *nc = (UINavigationController *)tb.selectedViewController;
[tb presentViewController:modalVC animated:YES completion:nil];
or...
UICustomViewController *cv = (UICustomViewController *)nc.topViewController;
[vc presentViewController:modalVC animated:YES completion:nil];
根据需要呈现 modalVC 全屏,但是,当我通过调用关闭 modalVC 时
[self dismissViewControllerAnimated:YES completion:nil];
从 modalVC 本身来看,modalVC 确实自行解雇了,但我留下了一个黑屏。一点点调试显示,在关闭 modalVC 后,self.view.window.rootViewController
变为 nil
。
知道为什么会发生这种情况以及如何解决这个问题吗?
编辑
这是一个 iPhone 应用程序。黑屏发生在 iOS7 和 iOS8 上。另外,下面是我启动 MyViewController
#pragma mark - UICollectionViewDelegate methods
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
self.myViewController = [[MyViewController alloc] initWithNibName:NSStringFromClass([MyViewController class]) bundle:nil];
return self.myViewController.view.frame.size;
}
最佳答案
我找到了解决方案 - this answer真的有帮助。诀窍在于关闭 View Controller 。应该这样做:
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
不是这样的:
[self dismissViewControllerAnimated:YES completion:nil];
虽然链接答案的作者建议更好的方法是使用委托(delegate)(presentED VC 将定义一个协议(protocol)并且 presentING VC 将订阅它,然后在 presentED VC 提出要求时解雇它),但它不是对我来说不可行。
关于ios - 关闭模态视图 Controller 会导致黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26641991/
阅读目录 1、视图介绍 2、创建视图 3、查询视图 4、修改视图 5、删除视图 6、检查选项
基于函数的视图你已经get了,基于类的视图get了吗?CBV本质不知道?点进来看源码分析~ Django 视图之FBV 与 CBV FBV(function base views) 基于函数的视图,就
SQLite 视图(View) 视图(View)只不过是通过相关的名称存储在数据库中的一个 SQLite 语句。视图(View)实际上是一个以预定义的 SQLite 查询形式存在的表的组合。 视图
视图 什么是视图?视图的作用是什么? 视图(view)是一种虚拟存在的表,是一个逻辑表,它本身是不包含数据的。作为一个select语句保存在数据字典中的。 通过视图,可以展现基表(用来创建视图
代码如下: CREATE OR REPLACE VIEW BLOG_V_ADMIN (ID,NICKNAME,SEX,EMAIL,
创建视图 视图包含应用的 HTML 代码,并将应用的控制器逻辑和表现逻辑进行分离。视图文件存放在 resources/views 目录中。下面是一个简单的视图示例:
加密测试的存储过程 ? 1
简介数据库快照 数据库快照,正如其名称所示那样,是数据库在某一时间点的视图。是SQL Server在2005之后的版本引入的特性。快照
一 ,mysql事务 MYSQL中只有INNODB类型的数据表才能支持事务处理。 启动事务有两种方法 (1) 用begin,rollback,commit来实现 复制代码代码如
前言 在日常开发中,存储数据的最常用的方式便是数据库了,其中最为著名的便是MySQL数据库,因它简便易于上手而且可扩展性强大,跨平台使得它广为使用。上一篇文章,我们讲到了它的安装,今天我们就来
1、视图 视图:VIEW,虚表,保存有实表的查询结果,实际数据不保存在磁盘 物化视图:实际数据在磁盘中有保存,加快访问,MySQL不支持物化视图 基表:视图依赖的表 视图中的数据事实上
事项开启和使用 ? 1
代码如下: create PROCEDURE sp_decrypt(@objectName varchar(50)) AS begin begin tran&
前言 在之前 《Oracle打怪升级之路一》中我们主要介绍了Oracle的基础和Oracle常用查询及函数,这篇文章作为补充,主要介绍Oracle的对象,视图、序列、同义词、索引等,以及PL/SQL编
我是一名优秀的程序员,十分优秀!