我正在使用SWRevealViewController在我的应用程序中实现幻灯片菜单(从左侧).一切都工作正常,但现在我面临一个小问题.我想从我的"主"视图控制器传递数据(一个完全可见的,我不是称它为"frontViewController",因为它似乎不是前面一个).我已经尝试了所有可能的想法来访问幻灯片菜单控制器并将数据传递给它.这是我尝试过的:
(MyControllerClass*)self.revealViewController.rearViewController
(MyControllerClass*)self.revealViewController.frontViewController
Run Code Online (Sandbox Code Playgroud)
比我试过喜欢的东西self.revealViewController.navigationController[0],self.revealViewController.navigationController[1]也这样,self.revealViewController.viewControllers[0],self.revealViewController.viewControllers[1].下一步是实现prepareforsegue和监听segue标识符sw_front和sw_rear.但在这些情况下,我在检查时都是如此isKindOfClass[MyControllerclass class].我假设这是因为所有这些都是SWRevealViewController类型,不是吗?并且,prepareForSegue根本没有被调用,但一切都正常显示
对我来说,主要的问题是,如何在我的侧面菜单和我的"主要"(又名前面)控制器之间传递数据(另一种方式也可以)?
谢谢
当我使用SWRevealViewController类滑出菜单时,它在iphone模拟器中正常工作.但是当我试图在iphone 5设备中运行进行测试时,选择菜单按钮时它会正确显示滑出菜单,但不幸的是,在选择时单元格,它崩溃并显示以下错误.但在模拟器中没有这样的错误.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
indexPath = [[self tableView] indexPathForSelectedRow];
if (indexPath.row==0) {
[self performSegueWithIdentifier:@"home" sender:indexPath];
}
else if (indexPath.row==1) {
[self performSegueWithIdentifier:@"cartme" sender:indexPath];
}
else {
[self performSegueWithIdentifier:@"changelocation" sender:indexPath];
}
}
Run Code Online (Sandbox Code Playgroud)
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [SWRevealViewControllerSegue setDestinationContainmentContext:]:无法识别的选择器发送到实例0x175c5f90'
请帮我.
在我的项目中,我有三个 tabBar 项目主页、通知和个人资料。侧面菜单控制器有主页、预订、个人资料和注销。侧栏菜单控制器是通过使用 SWRevealViewController cocopods 完成的。
当我将侧栏菜单导航到主页选项卡栏索引时,正确选择并正确导航。从预订导航时,它可以正确导航,但再次导航家庭应用程序崩溃。控制台输出显示无法将“UINavigationController”(0x10ef79420)类型的值转换为“UITabBarController”(0x10ef79970)。
由于预订控制器是自定义视图控制器,其余是标签栏控制器。当导航到预订屏幕视图控制器标签栏时,应该隐藏,用户再次点击菜单按钮并导航到主页或任何其他控制器。
由于预订控制器没有标签栏索引而崩溃。那么如何在不崩溃的情况下导航到带有选定索引项的自定义控制器和标签栏控制器。
这是我的截图:
我的故事板截图:
这是我尝试过的代码:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// tableView.deselectRow(at: indexPath, animated: true)
let row = indexPath.row
if row == 0{
let tabBarController = revealViewController().frontViewController as! UITabBarController
let storyboard = UIStoryboard(name: "Home", bundle: nil)
let obj = storyboard.instantiateViewController(withIdentifier: "HomeViewController") as! HomeViewController
let navController = UINavigationController.init(rootViewController: obj)
tabBarController.selectedIndex = (indexPath as NSIndexPath).row
tabBarController.tabBar.isHidden = false
self.revealViewController().pushFrontViewController(tabBarController, animated: true)
} else if row == 1{
let tabBarController = revealViewController().frontViewController as! …Run Code Online (Sandbox Code Playgroud) uitabbarcontroller uitableview ios swrevealviewcontroller swift
我使用SWRevealViewController作为侧边栏,我必须使用滑动来处理我的上一个和下一个故事以及侧边栏的边缘平移.
我使用UIScreenEdgePanGestureRecognizer而不是PanGestureRecogniser的原因是因为滑动会导致调用平移手势,导致整个页面变得混乱.我希望有一种方法可以在边缘泛声识别器激活时调用平移手势而不是使用它:
[self.view addGestureRecognizer:[MainViewController sharedInstance].revealViewController.panGestureRecognizer];
[[BTHomeViewController sharedInstance].revealViewController.panGestureRecognizer requireGestureRecognizerToFail: left];
[[BTHomeViewController sharedInstance].revealViewController.panGestureRecognizer requireGestureRecognizerToFail: right];
Run Code Online (Sandbox Code Playgroud)
我想使用SWRevealVC的委托.如果还有其他方式,请向我建议.
UIScreenEdgePanGestureRecognizer *panLeft = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(_handleRevealGesture:)];
[panLeft setEdges:UIRectEdgeLeft];
panLeft.minimumNumberOfTouches = 1;
panLeft.maximumNumberOfTouches = 1;
[self.view addGestureRecognizer:panLeft];
Run Code Online (Sandbox Code Playgroud)
委托SWRevealVC的方法
// The following methods provide a means to track the evolution of the gesture recognizer.
// The 'location' parameter is the X origin coordinate of the front view as the user drags it
// The 'progress' parameter is a positive value from 0 to 1 indicating the front …Run Code Online (Sandbox Code Playgroud) user-interface ios uiswipegesturerecognizer uipangesturerecognizer swrevealviewcontroller
我正在尝试使用SWrevealViewController进行侧面菜单.其中一个选项是"用户档案".由于我从其他各种视图访问用户的配置文件,我希望有一个推送segue到这个VC.但是,push segue无法从SWRevealViewController工作到UserProfileVC.
任何人都可以建议我如何使用来自SWRevealVC的push sugue?
将SWRevealViewController与Swift一起使用的正确方法是什么?XCode:6.0.1我甚至无法正确地重视文件:/

MenuViewController.swift
import UIKit
import SWRevealViewController
class MenuViewController: SWRevealViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人有一个小github,他们可以指向我,我真的很感激!
在我的xcode项目中,我希望UIButton使用SWRevealViewController打开一个右侧滑出菜单,但它不起作用.有帮助吗?
他是我视图中的代码,用于UIButton:
SWRevealViewController *revealViewController = self.revealViewController;
if ( revealViewController )
{
[sidebarButton addTarget:revealViewController action:@selector(rightRevealToggle:) forControlEvents:UIControlEventTouchUpInside];
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}
Run Code Online (Sandbox Code Playgroud)
以下是按钮的IBAction:
- (IBAction)reveal:(id)sender {
SWRevealViewController *revealViewController = self.revealViewController;
[self revealViewController];
}
Run Code Online (Sandbox Code Playgroud)
我在xcode中使用storyboard.
我是swift语言的新手,并开始创建具有滑动菜单的存根应用程序.我使用http://www.appcoda.com/sidebar-menu-swift/中的教程来创建幻灯片菜单,但是想要创建动态而非静态的应用程序,如示例所示.我在创建赛格瑞或从做导航面临的问题uitableviewcell到各自uiviewcontrollers连接到相应的UINavigationController.
以下是滑动菜单类的代码:
MenuController.swift
import UIKit
class MenuController:UITableViewController
{
let menuControlList = ["Category 1", "Category 2", "Category 3", "Category 4"]
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// Return the number of sections.
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// …Run Code Online (Sandbox Code Playgroud) 当我透露后视图时,我试图使前视图变暗.有没有办法做到这一点?
请快点(我对objc不是很有经验..我知道,我知道 - 不需要讲道..)
谢谢
我正在使用 SWRevealViewController 在我的应用程序中添加侧边栏菜单。它工作得很好,只要你触摸它的外部就会隐藏它,但是,我希望如果用户按下侧边栏菜单内的UIButton 就能够隐藏它。
知道如何去做吗?我假设我的 MenuViewController 中需要一个 IBOutlet,但我不知道我会用它做什么,也不知道如何让它隐藏菜单。
ios ×8
swift ×5
uitableview ×3
xcode ×2
ios7 ×1
ios8 ×1
ios9 ×1
objective-c ×1
pass-data ×1
segue ×1
sidebar ×1
slide ×1
storyboard ×1
swift2 ×1
uibutton ×1