我有一个使用SWRevealViewController的前视图和后视图。
我是新手(SWRevealViewController)
当我点击前视图中的导航菜单按钮时,我想要完全后视图,但它不会到来。
我试过了,但我的后视最右边的按钮没有显示。
有什么问题,或者我需要额外添加一些东西
这是我的代码: -
前视图: -
class HomeViewController: UIViewController,SWRevealViewControllerDelegate {
@IBOutlet weak var openSlideMenuView: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
if self.revealViewController() != nil {
openSlideMenuView.target = self.revealViewController()
openSlideMenuView.action = #selector(SWRevealViewController.revealToggle(_:))
self.navigationController?.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
}
由于
答案 0 :(得分:0)
在我的设置中,我使用UserDefault来设置mainViewController中的这两个函数。
如果这是你要找的答案,除了答案之外别忘了。
func changeShadow (){
let defaults: UserDefaults = UserDefaults.standard
let shadowColor = defaults.object(forKey: "shadowColorID") as? Int
if shadowColor == 1 {
revealViewController().frontViewShadowColor = UIColor.red
}else if shadowColor == 2{
revealViewController().frontViewShadowColor = UIColor.blue
}else if shadowColor == 3{
revealViewController().frontViewShadowColor = UIColor.green
}
}
func changeReveal (){
let defaults: UserDefaults = UserDefaults.standard
let revealWidth = defaults.object(forKey: "widthID") as? Int
if revealWidth == 1 {
revealViewController().rightViewRevealWidth = (view.frame.width / 5*4)
}else if revealWidth == 2{
revealViewController().rightViewRevealWidth = (view.frame.width / 6*5)
}else if revealWidth == 3{
revealViewController().rightViewRevealWidth = (view.frame.width / 7*6)
}else if revealWidth == 4{
revealViewController().rightViewRevealWidth = (view.frame.width / 8*7)
}else if revealWidth == 5{
revealViewController().rightViewRevealWidth = (view.frame.width )
}
}
在SWRevealViewController.h中查找此第241行
// Defines how much of the rear or right view is shown, default is 260.
// Negative values indicate that the reveal width should be computed by substracting the full front view width,
// so the revealed frontView width is kept constant when bounds change as opposed to the rear or right width.
@property (nonatomic) CGFloat rearViewRevealWidth;
@property (nonatomic) CGFloat rightViewRevealWidth; // <-- simetric implementation of the above for the rightViewController
// Defines how much of an overdraw can occur when dragging further than 'rearViewRevealWidth', default is 60.
@property (nonatomic) CGFloat rearViewRevealOverdraw;
@property (nonatomic) CGFloat rightViewRevealOverdraw; // <-- simetric implementation of the above for the rightViewController
// Defines how much displacement is applied to the rear view when animating or dragging the front view, default is 40.
@property (nonatomic) CGFloat rearViewRevealDisplacement;
@property (nonatomic) CGFloat rightViewRevealDisplacement; // <-- simetric implementation of the above for the rightViewController