我正在关注this教程,而我(我大约一半)将这段代码添加到某种控制器:
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
现在,我对这段代码的位置感到有些困惑。我目前在我的"前面"视图(菜单关闭时显示的视图)。但是,当我单击我的菜单按钮时,没有任何反应。
这是我当前的故事板的样子(主屏幕上有一个白色菜单按钮" Home"很难看到):
这是我在HomeViewController.Swift中的当前viewDidLoad函数:
override func viewDidLoad() {
super.viewDidLoad()
if self.revealViewController() != nil {
print("reveal")
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
if webView != nil {
print("webview is not null")
webView!.scrollView.bounces = false
let path = NSBundle.mainBundle().pathForResource("find_it_myself", ofType: "html", inDirectory: "assets/html/home")
let serviceDeskPath = NSBundle.mainBundle().pathForResource("ServiceDeskNumbers", ofType: "json", inDirectory: "assets/data")
let serviceDeskData = NSData(contentsOfMappedFile: serviceDeskPath!)
let serviceCenterPath = NSBundle.mainBundle().pathForResource("ITSC Live Room Locations", ofType: "json", inDirectory: "assets/data")
let serviceCenterData = NSData(contentsOfMappedFile: serviceCenterPath!)
let newStr = NSString(data: serviceDeskData!, encoding: NSUTF8StringEncoding)
let newerStr = NSString(data: serviceCenterData!, encoding: NSUTF8StringEncoding)
NSLog(String(webView!.URL))
NSLog("path: " + path!)
let requestURL = NSURL(fileURLWithPath: path!)
print("request is not null")
let request = NSURLRequest(URL:requestURL)
let theConfiguration = WKWebViewConfiguration()
theConfiguration.userContentController.addScriptMessageHandler(self, name: "interOp")
webView!.loadRequest(request)
}
else{
print("webview is null")
}
}
答案 0 :(得分:0)
我发布我的解决方案,以防万一。揭示实际上是有效的,但只有滑动手势,而不是按菜单按钮。
我为menuButton添加了一个按钮按下功能,并通过一个来自GitHub项目(SWRevealViewController)的库的revealToggle函数调用。
put (from: new File('build/app').listFiles(), into: '/opt/nginx/latest/html/')
答案 1 :(得分:-1)
所有这些代码:
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
意味着在RevealViewController上调用方法(revealToggle :),这意味着你应该在ReleavelViewController中有一个具有该名称的方法,并且应该在那里做你想做的事情(如果有的话)。理想情况下你应该有这样的事情:
menuButton.target = self
menuButton.action = "revealToggle:"
然后:
func revealToggle(sender: AnyObject) {
//present your view controller
self.pushViewController(self.revealViewController(), animated: true)
}
你在这里想要做的事情让你很困惑。您的揭示VC在某些事件上显示导航控制器,在某些其他事件上显示菜单控制器。从您所解释的情况来看,您的家庭控制器是揭示了揭示VC的那个,但似乎并不是这样的一个障碍?您的意思是制作导航控制器"初始控制器"?