在 swrevealcontroller 之前实现登录屏幕

implement login screen before swrevealcontroller

我刚刚开始学习 IOS 开发,我已经按照给定的在线教程成功实现了 SWRevealViewController,一切都按预期工作。

然后我决定添加一个登录屏幕,这将是应用程序 运行 时用户看到的第一个页面。我采取的步骤如下:

  1. 将 UIViewController 放到故事板上
  2. 设为我的 'is initial view controller'
  3. 向这个新视图添加了一个按钮并创建了一个用于测试目的的序列

但是当我点击这个按钮时它没有任何反应,所以在网上搜索并试图自己解决这个问题后不幸的是我没有成功,因为我对此缺乏了解,有人会好心吗如果有任何需要更改的内容,或者我需要修改哪些部分才能使此流程按预期工作,请给我一些指示?

下面是我当前故事板的屏幕截图。

更新

在应用程序委托文件中添加相关代码后,我仍然收到此错误消息:

故事板的安排看起来不错。我使用了如下 SWRevealController

登录后(执行登录服务或某些登录过程)编写以下代码。 此代码会将当前的 rootViewController(在您的情况下为 LoginViewController)更改为 SWRevealController。这样它就会起作用。当你注销时,将 rootViewController 更改为 LoginViewController.

SWRevealViewController *controller = (SWRevealViewController *)[self.mainStoryboard instantiateViewControllerWithIdentifier:@"RevealViewController"];
[self.window setRootViewController:controller];

不要忘记在 Storyboard 中为 SWRevealViewController 分配 StoryboardID = "RevealViewController"。

Swift代码:

将以下函数添加到您的 AppDelegate.swift 文件中:

func changeRootViewControllerToSWRevealViewController () {
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let controller = storyboard.instantiateViewControllerWithIdentifier("RevealViewController")
    if let window = self.window{
        window.rootViewController = controller
    }
}

// 在您的登录按钮操作方法中调用上述函数,如下所示:

    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    appDelegate.changeRootViewControllerToSWRevealViewController()

第一步

将您的登录 VC 嵌入 NavigationController。

第 2 步

在您的登录按钮操作上,将 segue 类型设置为 Modal 并调用为

 @IBAction func btnLogin(sender: AnyObject) {

    self.performSegueWithIdentifier("openSWL", sender: self)
  }

为了流程理解目的

对于示例项目,您可以 download here