当前位置: 首页 > 面试题库 >

在Swift中从AppDelegate获取ViewController的实例

徐杰
2023-03-14
问题内容

当用户单击UILocalNotification时,我试图迅速从应用程序委托中加载特定的ViewController。我已经知道这是在此函数中调用的:

func application(application: UIApplication!, didReceiveLocalNotification notification: UILocalNotification!)

但是当我尝试访问一个打开的ViewController时,我认为它返回null,因为我的应用程序崩溃了。这是我正在尝试的:

var rootViewController = self.window!.rootViewController
var storyBoard = rootViewController.storyboard
var setViewController = storyBoard.instantiateViewControllerWithIdentifier("CurrentShows") as ViewController_CurrentShows

rootViewController.navigationController.popToViewController(setViewController, animated: false)
setViewController.reloadData()

在popToViewController行上崩溃了。


问题答案:

您可以尝试:

let rootViewController = self.window!.rootViewController
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let setViewController = mainStoryboard.instantiateViewControllerWithIdentifier("CurrentShows") as! DetailViewController
rootViewController?.navigationController?.popToViewController(setViewController, animated: false)

斯威夫特3:

let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let controller = mainStoryboard.instantiateViewController(withIdentifier: "viewController")
self.present(viewController, animated: true, completion: nil)


 类似资料:
  • 问题内容: 我正在尝试使用某些功能 但是从后台进入应用程序后,当该应用程序处于活动状态时,该功能似乎根本无法运行。 函数看起来像这样 并使用这个变量 我错过了什么? 谢谢! 问题答案: 将创建ViewController的新实例并调用此函数。然后,由于不使用视图控制器,它将被垃圾回收/从内存中删除。您需要在使用中的实际视图控制器上调用此方法。不是它的新实例。 最好的选择是监听iOS提供的通知。 确

  • 问题内容: 我想实现一个单独的ErrorHandler类,该类在某些事件上显示错误消息。该类的行为应从其他不同的类中调用。发生错误时,它将有一个as输出。此AlertView的显示应始终位于顶部。因此,无论从何处引发错误,最顶层的viewController都应显示AlertMessage(例如,当异步后台进程失败时,无论在前台显示什么视图,我都将收到一条错误消息)。 我发现一些要点似乎可以解决我

  • 问题内容: 在我的Xcode项目中,当用户点击通知时,我想先将其发送到tabBar中的某个项目,然后再实例化视图控制器并将对象发送到该视图控制器。我有将它们发送到所需的tabBar的代码,但我不知道如何在将tabBar和导航栏保持与视图控制器连接的同时将它们实例化到视图控制器。关于此问题的所有答案都需要您更改根视图控制器,这使我在调用视图控制器时失去了与tabBar和导航栏的连接。 一个真实的例子

  • 问题内容: 我使用WKWebView登录到一个网站,现在我想解析该网站的html。如何快速访问HTML网站?我知道它如何用于UIWebView但不适用于WKWebView。 谢谢你的帮助! 问题答案: 如果您等到页面加载完毕,则可以使用: 您还可以注入一些JavaScript,使您返回HTML。 您可以注入的javascript如下所示:

  • 问题内容: 问题 我开始浏览上的新功能,并尝试了一些演示项目和教程。现在我被困在: 实例化,然后呈现特定情节提要中的 Objective-C解决方案 如何在Swift上实现这一目标? 问题答案: 这个答案最近针对Swift 5.2和iOS 13.4 SDK进行了修订。 这都是新语法和稍微修改的API的问题。UIKit的基本功能没有改变。对于绝大多数iOS SDK框架来说都是如此。 如果您遇到问题,

  • 问题内容: 我知道如何快速创建单例类。创建单例类的最佳简便方法如下: 但是我不需要任何普通班的单身人士。我需要为viewcontroller类创建单例。所以我用这段代码创建单例 它给我附近的错误 似乎要我使用进行初始化。但是我应该通过什么参数或值? 问题答案: 如果您真的想为某个场景对应的视图控制器设置单例,则可能需要执行以下操作: 在此示例中,情节提要是,问题场景的情节提要标识符是。显然,将这​