- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在我的应用程序中,我在 willFinishLaunching
中设置了窗口的 rootViewController。标准。
在 didFinishLaunching
中,我检查用户是否已登录,如果没有,我会显示一个 LoginViewController。
- (BOOL)application:(UIApplication *)application willFinishLaunching...
{
...
self.window.rootViewController = [MyViewController new];
[self.window makeKeyAndVisible];
...
return true;
}
- (BOOL)application:(UIApplication *)application didFinishLaunching...
{
if (/* not logged in */) {
UIViewController *login = [LoginViewController new];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:welcome];
[self.window.rootViewController presentViewController:nav animated:false completion:nil];
}
return true;
}
在 iOS 7 中,这非常有效。但是,在 iOS 8 中,我在控制台中看到以下警告:
Unbalanced calls to begin/end appearance transitions for <LoginViewController: 0x7fca9340cbb0>.
我不太确定我需要做什么来避免这个警告,同时仍然能够显示我的 LoginViewController。
我喜欢从 window.rootViewController
呈现,因为它允许我在用户登录时关闭 LoginViewController
,而不必向其中的任何其他 View Controller 添加完成/回调代码我的申请。
有什么想法吗?
最佳答案
您需要延迟显示 View Controller 。我在我的一个项目中使用了这个技巧。
-(void)presentController
{
UIViewController *login = [LoginViewController new];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:welcome];
[self.window.rootViewController presentViewController:nav animated:false completion:nil];
}
延迟调用 performSelector 方法
[self performSelector:@selector(presentController) withObject:self afterDelay:1.0];
关于ios - 从 window.rootViewController 呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25495489/
如果这个问题揭示了我知识中的大漏洞,我深表歉意。 我正在使用 setRootViewController 来切换 View ,因为我需要使用 SplitViewController。当我使用 setR
我有一个基本情况,当用户通过身份验证后,我删除当前屏幕(登录屏幕)并将其更改为应用程序内的另一个屏幕。 为此,我使用以下代码: if let appDelegate = UIApplication.s
我一直在做一个 Swift 项目,我有两个 View Controller ,登录 View Controller 和主页 View Controller 。当用户启动应用程序时,如果用户未登录,我想
我已经使用 SceneDelegate 在登录操作后更改 rootviewcontroller。它工作正常,但当我注销时,我无法再次执行导航。 这是我的 Scenekit 代码: let statu
我有一个应用程序,如果它在后台运行时间过长,我会在其中重新启动该应用程序。当用户在分配的时间后打开应用程序时,会发生重新初始化,并在获取所需数据时显示启动屏幕。当我从服务器获取数据时,我设置了 win
使用以下代码,我可以更改模态视图后面的rootViewController: let storyboard : UIStoryboard = UIStoryboard(name: "Main", bu
当应用程序被激活时,我正在创建一个文件。根据该文件的存在,加载不同的 View 。 我正在尝试的是 - (BOOL)application:(UIApplication *)application d
我正在开发一些自定义相机应用程序,我只想跳过我的登录页面并在用户已经注册时将我的相机主页设置为初始 Root View 。我是从 AppDelegate 或 View 代码内部执行此操作,但是我收到一
我是 iOS - Objective C 的新手,我正在尝试实现登录功能。我的 Storyboard 图如下所示: 因此,当有人单击帐户选项时,它会进入配置文件 View Controller ,并在
我的 iOS 应用程序在后台保持较长时间后会返回到 rootViewController。为了证明我有下面的图片 我一直导航到 ViewControllerC 并将应用程序保持在后台,当我返回应用程序
我有以下 Objective-C 代码来使用主屏幕快速操作启动我的应用程序: - (void)applyShortcutItem:(UIApplicationShortcutItem *)shortc
我正在构建一个在应用加载时执行大量设置的应用。因此,我有一个加载 View ,可以在设置发生时向用户显示一些信息... MyLoadingViewController *loadingViewCont
我想动态更改 rootViewController。这取决于 json 响应。我有一个 BOOL 值,它在收到 json 响应后发生变化。问题是即使条件为真,这个值也永远不会改变。 我的代码在下面,我
我想通过编码来制作导航 Controller 但是有一个问题:下面是我的代码 这是 Appdelegates.m #import "AppDelegate.h" #import "ViewContro
我的情况和this question很相似.我有一个通用的应用程序,其中 iPhone 为纵向,iPad 为横向,我使用 appDelegate.window.rootViewController =
我有一个 RegistrationViewController 和一个 LoginViewController: LoginViewController 是我的 InitialViewControll
有什么方法可以快速进入rootViewController?我想从堆栈中删除所有 View 并返回到 rootViewController,甚至不打扰它上面的 View 序列。 最佳答案 来自文档:
@IBAction func addButton(sender: AnyObject) { let alert = UIAlertController(title: "New Exercise
我想知道是否有人可以帮助我解决下面代码中的内存管理问题。我对 rootController 特别感兴趣,它是在我执行 initWithRootViewController 时被保留还是在窗口 addS
我的 iOS 应用打开时出现登录提示。一旦用户登录,它就会切换到主视图。 在 application:didFinishLaunchingWithOptions 中,我将 RootViewContro
我是一名优秀的程序员,十分优秀!