Ios 不带故事板的Swift SWRevealController
我用storyboard实现,一切都很好,但现在我想在没有storyboard的情况下编写应用程序 有人能帮我实施吗?我有一个FrontViewController和一个MenuViewController。我需要一个额外的SWRevealViewController吗?如果需要,我需要编写什么代码Ios 不带故事板的Swift SWRevealController,ios,swift,swrevealviewcontroller,Ios,Swift,Swrevealviewcontroller,我用storyboard实现,一切都很好,但现在我想在没有storyboard的情况下编写应用程序 有人能帮我实施吗?我有一个FrontViewController和一个MenuViewController。我需要一个额外的SWRevealViewController吗?如果需要,我需要编写什么代码 我知道有一些关于的信息,但它是在Objective-C中,我在Swift 2.0中编写时遇到了一些问题。您可以按照以下操作 在appDelegate中创建一个函数createSlidingMenu
我知道有一些关于的信息,但它是在Objective-C中,我在Swift 2.0中编写时遇到了一些问题。您可以按照以下操作 在appDelegate中创建一个函数
createSlidingMenu
func createSlidingMenu(){
let frontViewController = //create instance of frontVC
let rearViewController = //create instance of rearVC(menuVC)
//create instance of swRevealVC based on front and rear VC
let swRevealVC = SWRevealViewController(rearViewController: rearViewController, frontViewController: frontViewController);
swRevealVC.toggleAnimationType = SWRevealToggleAnimationType.EaseOut;
swRevealVC.toggleAnimationDuration = 0.30;
//set swRevealVC as rootVC of windows
self.window?.rootViewController = swRevealVC!;
}
在
应用程序中调用createSlidingMenu
:使用选项完成启动:
,您就可以开始了。您可以按如下操作
在appDelegate中创建一个函数createSlidingMenu
func createSlidingMenu(){
let frontViewController = //create instance of frontVC
let rearViewController = //create instance of rearVC(menuVC)
//create instance of swRevealVC based on front and rear VC
let swRevealVC = SWRevealViewController(rearViewController: rearViewController, frontViewController: frontViewController);
swRevealVC.toggleAnimationType = SWRevealToggleAnimationType.EaseOut;
swRevealVC.toggleAnimationDuration = 0.30;
//set swRevealVC as rootVC of windows
self.window?.rootViewController = swRevealVC!;
}
在应用程序中调用createSlidingMenu
:使用选项完成启动:
,您就可以开始了。这对我很有效(在swift 3.1中)
- 在AppDelegate和
- 复制上面在application:didFinishLaunchingWithOptions中写入的viewDidLoad主体代码:
- 在AppDelegate和
- 复制上面在application:didFinishLaunchingWithOptions中写入的viewDidLoad主体代码:
除了Hitendra,我还修改了下面的代码,这样我就可以把导航放在家里了 AppDelegate.swift
func toHome() {
let frontViewController = HomeController()//create instance of frontVC
let rearViewController = MenuController() //create instance of rearVC(menuVC)
let swRevealVC = SWRevealViewController(rearViewController: rearViewController, frontViewController: frontViewController);
swRevealVC?.toggleAnimationType = SWRevealToggleAnimationType.easeOut;
swRevealVC?.toggleAnimationDuration = 0.30;
navigationController = UINavigationController(rootViewController: swRevealVC!)
self.window?.rootViewController = navigationController
}
LoginController.swift,当用户单击登录按钮时
@objc private func login() {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.toHome()
return
}
斯威夫特家庭控制器
override func viewDidLoad() {
super.viewDidLoad()
setupLayout() // layout programmatically, I didn't put code here
let menuButton = UIBarButtonItem(title: "Menu", style: .plain, target: self, action: #selector(HomeController.menu))
self.revealViewController().navigationItem.leftBarButtonItem = menuButton
}
@objc private func menu() {
revealViewController().revealToggle(self)
}
除了Hitendra,我还修改了下面的代码,这样我就可以把导航放在家里了 AppDelegate.swift
func toHome() {
let frontViewController = HomeController()//create instance of frontVC
let rearViewController = MenuController() //create instance of rearVC(menuVC)
let swRevealVC = SWRevealViewController(rearViewController: rearViewController, frontViewController: frontViewController);
swRevealVC?.toggleAnimationType = SWRevealToggleAnimationType.easeOut;
swRevealVC?.toggleAnimationDuration = 0.30;
navigationController = UINavigationController(rootViewController: swRevealVC!)
self.window?.rootViewController = navigationController
}
LoginController.swift,当用户单击登录按钮时
@objc private func login() {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.toHome()
return
}
斯威夫特家庭控制器
override func viewDidLoad() {
super.viewDidLoad()
setupLayout() // layout programmatically, I didn't put code here
let menuButton = UIBarButtonItem(title: "Menu", style: .plain, target: self, action: #selector(HomeController.menu))
self.revealViewController().navigationItem.leftBarButtonItem = menuButton
}
@objc private func menu() {
revealViewController().revealToggle(self)
}
你打的地方…你打的地方…明白了。。在appDelegate中添加了您的方法。在
应用程序中调用它:使用选项完成启动:
使用self.createSlidingMenu()
在ViewController中,我创建了一个按钮,该按钮应使用打开滑动菜单:menuButton.addTarget(self.revealViewController(),操作:选择器(“Revealtogle:”),forControlEvents:.TouchUpInside)
是的,非常感谢!我还了解了如何切换到新的ViewController:revalviewcontroller()。按下FrontViewController(NextViewController(),动画:true)
很高兴知道您的问题已经解决。如果你接受我的答案并投票表决,那就太好了,这将有助于社区找到有效的答案。你还需要更改导航控制器的颜色,因为如果你将导航控制器用作frontVC,那么它将始终在window@MiguelValencia它应该是这样的“让frontViewController=HomeViewController()''让rearViewController=LeftMenuViewController()'得到它。。在appDelegate中添加了您的方法。在应用程序中调用它:使用选项完成启动:
使用self.createSlidingMenu()
在ViewController中,我创建了一个按钮,该按钮应使用打开滑动菜单:menuButton.addTarget(self.revealViewController(),操作:选择器(“Revealtogle:”),forControlEvents:.TouchUpInside)
是的,非常感谢!我还了解了如何切换到新的ViewController:revalviewcontroller()。按下FrontViewController(NextViewController(),动画:true)
很高兴知道您的问题已经解决。如果你接受我的答案并投票表决,那就太好了,这将有助于社区找到有效的答案。你还需要更改导航控制器的颜色,因为如果你将导航控制器用作frontVC,那么它将始终在window@MiguelValencia它应该是这样的“让frontViewController=HomeViewController()''让rearViewController=LeftMenuViewController()'