- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在构建一个相当复杂的 iPad 应用程序,它将在 iOS7+ 上运行。该应用程序有一个登录屏幕,每个用户 session 都必须访问一次,这是我 Storyboard中的起始 View Controller 。用户可以通过触摸一个按钮从应用程序中的任何其他屏幕(大约有 60 个其他屏幕)注销,该按钮在所有其他 ViewController 中始终可用。当用户注销时,应使用自定义过渡动画。
看来我可以通过以下两种方式之一实现这一点,要么通过从应用程序中的每个屏幕到登录页面的 segue,这使得 Storyboard 无法阅读,要么使用 presentViewController。
我已经用 presentViewController 实现了这个,方法是从 Storyboard 中按 id 查找 View Controller (创建一个新实例,这是一种期望的行为),然后从当前 View Controller 中呈现它。
毫不奇怪,这并没有关闭原始的登录 View Controller ,而是实质上创建了一堆 View Controller ,最终我用完了内存,因为每次用户注销时,都会创建并保留一个新的登录 View Controller 。
有没有办法清除 View Controller 的这个“堆栈”?
有没有不同的方式来呈现 View Controller ,带有动画,不涉及 presentViewController 或 segues?我考虑过 View Controller 包含,但在与 Storyboard一起使用时似乎不太正确。
最佳答案
您是否考虑过更换 Root View Controller ?如果应用程序委托(delegate)观察到注销通知并用 Storyboard的初始内容替换 Root View Controller ,这应该使应用程序返回到初始屏幕。
我已经在网络上的其他地方看到它作为登录/注销问题的解决方案,但我不确定是否有可以在那里制作动画的过渡。
关于objective-c - 在不调用 presentViewController(或 dismissViewController)的情况下呈现 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20145155/
我有以下 MonoTouch 程序: using System.Drawing; using MonoTouch.Foundation; using MonoTouch.UIKit; using Sy
我有一个带有 3 个 viewController 的 navigationController,我将其称为模态。 当我到达最后一个 viewController 时,我想按下一个 doneButto
如果用户已登录,我的应用程序具有以下流程 加载屏幕 -----> 主屏幕 -----> 应用程序的其余部分 如果他不在,则以下流程: 加载屏幕 -----> 登录屏幕 -----> 主屏幕 -----
我将一些数据发送到我的服务器,并在收到响应后关闭我的 View Controller 。在 viewController 的 viewWillDisappear() 中,我尝试关闭键盘。 如果 Pre
我对 ARC 有一些疑问。 在 ARC 中:当使用 dismissViewController/popViewController 关闭 viewcontroller 时,它分配的内存会自动释放吗?
我有一个 View ,我称之为我的方法: Twitter *tweet = [[Twitter alloc] initWithNibName:@"Twitter" bundle:nil]; [
我以这种方式呈现一个 View : - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)
从事 Objective-C 视频项目。在视频播放器上,我有一个按钮可以让用户返回到菜单屏幕。 在我的 PlayerViewController.m 中,我有: - (IBAction)unloadP
我正在开发 iPhone 应用程序,我曾一度陷入困境。 我面临的错误是,我在 FirstViewController 中有一个表格 View ,点击单元格我在 SecondViewController
尝试使用链接中第一个答案中的代码(来自 Kampai): How to use UIAlertController to replace UIActionSheet? 但是,我的代码中甚至没有调用完成
我在导航 Controller 中嵌入了一个 Controller 。假设我有一个按钮可以稍微重新定位 self.navigationController.navigationBar。然后我确实使用任
在 GameListViewController 中调用代码: [self presentViewController:[[StartNewGameViewController alloc] init
我有一个打开模态序列 View 的 View 。 我用这段代码打开这个 View : - (IBAction)openInfopage:(UIButton *)sender; { [self pe
如何使用选择器调用 self.dismissViewControllerAnimated(true, completion: nil); //MARK - closeBarButtonItem
我的问题几乎与此处发现的问题相同:How to call viewDidLoad after [self dismissModalViewControllerAnimated:YES]; 而且我很确定
我试图关闭一个 View Controller 并同时显示另一个 View Controller 。当 Level1Controller() 完成并调用 self.dismissViewControl
我了解 dismissViewControllerAnimated:completion: 和 popViewControllerAnimated: 之间的区别,如 on Stack Overflow
我还没有找到可以回答我的问题的类似问题。 我的问题是:为什么我不能在 dissmissViewController 之后从另一个类访问 UILabel? 这是我的代码: A类.h: @interfac
索引中的tabbarcontroller为1表示一个 Controller ,当 Controller 关闭时,如何使tabbarcontroller索引变为2? 最佳答案 当你关闭 Controll
我试图在从 TableView 中删除数据点后重新加载带有数据点的图形。我叫 [self dismissViewControllerAnimated:YES completion:nil]; 从页面中
我是一名优秀的程序员,十分优秀!