0

我有一个使用 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())
    }

}  

谢谢

4

1 回答 1

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
于 2016-11-20T03:17:13.670 回答