【问题标题】:How do I make a viewController appear when app loads?如何在应用加载时显示 viewController?
【发布时间】:2015-01-28 06:55:18
【问题描述】:

我有一个不会崩溃的工作应用程序,并且我已将我的初始 VC 设置为我想要的那个。在模拟器上运行时,我的应用程序第一次在我想要的 VC 上打开,但如果我去; Hardware -> Home 并在 iPhone 主菜单上再次单击该应用程序,该应用程序加载我留下的 VC,而不是我设置的 VC。我是 iOS 开发的新手,所以我不明白什么不起作用。其他问题的答案对我没有帮助,因为我的主要 VC 设置在我的故事板上。谢谢你们的帮助!这是在我的 appDelegate 文件中:

func applicationWillResignActive(application: UIApplication) {

    NSNotificationCenter.defaultCenter().addObserver(self, selector:"appWillResignActive", name:UIApplicationWillResignActiveNotification, object: nil)

    func appWillResignActive() -> () {
        self.navigationController?.popToViewController(ViewController, animated: false)
    }
}

【问题讨论】:

  • 这就是 iPhone 的工作方式,应用程序被发送到后台并保持原样。我认为有一些方法可以实现你想要的,但这只是那里的默认行为,而不是任何类型的错误

标签: ios xcode swift


【解决方案1】:

您可以订阅UIApplicationWillResignActiveNotification 并在应用程序进入后台之前调用一个方法,将 VC 设置为您想要的。这样,一旦他们重新打开应用程序,它就应该是您想要的位置。

Obj-C:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillResignActive) name:UIApplicationWillResignActiveNotification object:nil];

-(void) appWillResignActive {
    [self.navigationController popToViewController:<UIViewController you want> animated:NO];
}

SWIFT:

NSNotificationCenter.defaultCenter().addObserver(self, selector:"appWillResignActive", name:UIApplicationWillResignActiveNotification, object: nil)

func appWillResignActive() -> () {
    self.navigationController.popToViewController(<UIViewController you want>, animated: false)
}

【讨论】:

  • 他使用的是 Swift,而不是 Obj-C。
  • 是一回事……好的,我会把它“翻译”成 Swift。
  • 我应该在我的 appDelegate 还是在特定的 VC 中调用这个方法?
  • 我一直在试图找出您的解决方案,但我无法让它发挥作用。我会在我的问题中发布我的更改
  • 哦!我不是想让你把它放在 AppDelegate 中。对不起,我把这个问题和另一个问题混在一起了……你应该把第一行放在你想展示的 VC 的 viewDidLoad() 中,然后把 appWillResignActive() 放在同一个 VC 的其他方法中。
猜你喜欢
  • 1970-01-01
  • 2018-01-12
  • 1970-01-01
  • 2014-06-12
  • 1970-01-01
  • 1970-01-01
  • 2020-07-16
  • 2013-01-17
  • 1970-01-01
相关资源
最近更新 更多