Ios 如何在xcode 7中创建导航菜单
如何为整个项目创建一个导航菜单。Ios 如何在xcode 7中创建导航菜单,ios,swift,xcode,Ios,Swift,Xcode,如何为整个项目创建一个导航菜单。 我创建了一个,但仅用于使用SWRevealViewController的特定视图。 你不能用两种方法来做 a) 创建带有侧菜单的ViewController,并在每次需要侧菜单时为view controller创建子类 class BaseViewController: UIViewController { override func viewDidLoad() { let menuButton = UIBarButtonItem.init
我创建了一个,但仅用于使用SWRevealViewController的特定视图。
你不能用两种方法来做 a) 创建带有侧菜单的ViewController,并在每次需要侧菜单时为view controller创建子类
class BaseViewController: UIViewController {
override func viewDidLoad() {
let menuButton = UIBarButtonItem.init(image: image, style: .plain, target: self, action: #selector(funcToCall))
navigationItem.leftBarButtonItem = menuButton
}
}
和子类BaseViewController
class MyViewController: BaseViewController {
}
class MyViewController: UIViewController {
override func viewDidLoad() {
addMenu()
}
}
b) 另一种更好的方法是使用extension
extension UIViewController {
func addMenu() {
let menuButton = UIBarButtonItem.init(image: image, style: .plain, target: self, action: #selector(SWRevealViewController.rightRevealToggle(_:)))
navigationItem.leftBarButtonItem = menuButton
}
}
并在MyViewController
class MyViewController: BaseViewController {
}
class MyViewController: UIViewController {
override func viewDidLoad() {
addMenu()
}
}
许多方法之一是创建swift文件Helper.swift
然后
您可以将您的RevealVC嵌入导航控制器,并将导航项添加到RevealVC,但这样的菜单将是静态的 我通常使用TopViewController类:
class TopViewController: UIViewController {
@IBOutlet weak var menuButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
if self.revealViewController() != nil {
revealViewController().rightViewRevealWidth = view.frame.size.width / 2
menuButton.target = revealViewController()
menuButton.action = #selector(SWRevealViewController.rightRevealToggle(_:))
view.addGestureRecognizer(revealViewController().panGestureRecognizer())
}
}
}
每个视图控制器将仅继承此选项。在这种情况下,您应该在故事板中为每个视图控制器创建navigationVC(我认为这是最好的解决方案)。不要忘记将插座从故事板拖动到TopViewController
我想只创建一个导航VC是不可能的。你的问题不清楚我想创建一个幻灯片菜单,我可以从项目中的任何视图打开OK,在那里你可以点击我不知道怎么做我创建了菜单,但只创建了一个视图OK删除连接,使用较少的连接,在SWL主页的didselect中添加程序导航我不理解解决方案b,我在其中放置了此部件扩展UIViewController{func addMenu(){let menuButton=UIBarButtonItem.init(image:image,style:.plain,target:self,action:#selector(funcToCall))navigationItem.leftBarButtonItem=menuButton}funcToCall的功能和放置位置请参见代码。我为你的使用做了调整。将
funcToCall
替换为SWRevealViewController.RightRevealtogle(:)
它与我一起工作,非常感谢解决方案b节省了我的时间。很高兴它帮助了你。:)