在 swrevealcontroller 之前实现登录屏幕
implement login screen before swrevealcontroller
我刚刚开始学习 IOS 开发,我已经按照给定的在线教程成功实现了 SWRevealViewController,一切都按预期工作。
然后我决定添加一个登录屏幕,这将是应用程序 运行 时用户看到的第一个页面。我采取的步骤如下:
- 将 UIViewController 放到故事板上
- 设为我的 'is initial view controller'
- 向这个新视图添加了一个按钮并创建了一个用于测试目的的序列
但是当我点击这个按钮时它没有任何反应,所以在网上搜索并试图自己解决这个问题后不幸的是我没有成功,因为我对此缺乏了解,有人会好心吗如果有任何需要更改的内容,或者我需要修改哪些部分才能使此流程按预期工作,请给我一些指示?
下面是我当前故事板的屏幕截图。
更新
在应用程序委托文件中添加相关代码后,我仍然收到此错误消息:
故事板的安排看起来不错。我使用了如下 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
我刚刚开始学习 IOS 开发,我已经按照给定的在线教程成功实现了 SWRevealViewController,一切都按预期工作。
然后我决定添加一个登录屏幕,这将是应用程序 运行 时用户看到的第一个页面。我采取的步骤如下:
- 将 UIViewController 放到故事板上
- 设为我的 'is initial view controller'
- 向这个新视图添加了一个按钮并创建了一个用于测试目的的序列
但是当我点击这个按钮时它没有任何反应,所以在网上搜索并试图自己解决这个问题后不幸的是我没有成功,因为我对此缺乏了解,有人会好心吗如果有任何需要更改的内容,或者我需要修改哪些部分才能使此流程按预期工作,请给我一些指示?
下面是我当前故事板的屏幕截图。
更新
在应用程序委托文件中添加相关代码后,我仍然收到此错误消息:
故事板的安排看起来不错。我使用了如下 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