Swift : 显示后方时禁用 FrontViewController
Swift : Disable FrontViewController when Rear is Displayed
我想在显示左视图或右视图时禁用与前视图的交互。如何做到这一点?
所有来源都写在objective-C
比如这个
- (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position
{
if(position == FrontViewPositionLeft) {
self.view.userInteractionEnabled = YES;
} else {
self.view.userInteractionEnabled = NO;
}
}
- (void)revealController:(SWRevealViewController *)revealController didMoveToPosition:(FrontViewPosition)position
{
if(position == FrontViewPositionLeft) {
self.view.userInteractionEnabled = YES;
} else {
self.view.userInteractionEnabled = NO;
}
}
更新
这是前视图控制器
也没用
class Feed: UIViewController,SWRevealViewControllerDelegate {
@IBOutlet var tableView: UITableView!
@IBOutlet weak var menuButton:UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
self.revealViewController().delegate = self
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = false
}
else
{
self.view.userInteractionEnabled = true
}
}
fetchMessages()
}
}
用任何一种方法都可以
Swift
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled=False
}
else
{
self.view.userInteractionEnabled=true
}
}
不要忘记在您的视图控制器中添加 self.revealViewController().delegate = self
else,委托未被调用
Objective-c
- (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position
{
if(position == FrontViewPositionLeft) {
self.view.userInteractionEnabled = YES;
} else {
self.view.userInteractionEnabled = NO;
}
}
不要忘记在您的视图控制器中添加 self.revealViewController.delegate = self;
else,委托未被调用
update/customize
class Feed: UIViewController,SWRevealViewControllerDelegate {
@IBOutlet var tableView: UITableView!
@IBOutlet weak var menuButton:UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.revealViewController().delegate = self
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
fetchMessages()
}
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = false
}
else
{
self.view.userInteractionEnabled = true
}
}
试试吧。
func revealController(revealController: SWRevealViewController, didMoveToPosition position: FrontViewPosition) {
if revealController.frontViewPosition == FrontViewPosition.Left {
self.view.userInteractionEnabled = true
}
else {
self.view.userInteractionEnabled = false
}
}
我们弄错了第一个条件为真,第二个为假
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = true
}
else
{
self.view.userInteractionEnabled = false
}
func revealController(revealController: SWRevealViewController!, didMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = true
}
else
{
self.view.userInteractionEnabled = false
}
}
我想在显示左视图或右视图时禁用与前视图的交互。如何做到这一点?
所有来源都写在objective-C
比如这个
- (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position
{
if(position == FrontViewPositionLeft) {
self.view.userInteractionEnabled = YES;
} else {
self.view.userInteractionEnabled = NO;
}
}
- (void)revealController:(SWRevealViewController *)revealController didMoveToPosition:(FrontViewPosition)position
{
if(position == FrontViewPositionLeft) {
self.view.userInteractionEnabled = YES;
} else {
self.view.userInteractionEnabled = NO;
}
}
更新
这是前视图控制器 也没用
class Feed: UIViewController,SWRevealViewControllerDelegate {
@IBOutlet var tableView: UITableView!
@IBOutlet weak var menuButton:UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
self.revealViewController().delegate = self
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = false
}
else
{
self.view.userInteractionEnabled = true
}
}
fetchMessages()
}
}
用任何一种方法都可以
Swift
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled=False
}
else
{
self.view.userInteractionEnabled=true
}
}
不要忘记在您的视图控制器中添加 self.revealViewController().delegate = self
else,委托未被调用
Objective-c
- (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position
{
if(position == FrontViewPositionLeft) {
self.view.userInteractionEnabled = YES;
} else {
self.view.userInteractionEnabled = NO;
}
}
不要忘记在您的视图控制器中添加 self.revealViewController.delegate = self;
else,委托未被调用
update/customize
class Feed: UIViewController,SWRevealViewControllerDelegate {
@IBOutlet var tableView: UITableView!
@IBOutlet weak var menuButton:UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.revealViewController().delegate = self
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
fetchMessages()
}
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = false
}
else
{
self.view.userInteractionEnabled = true
}
}
试试吧。
func revealController(revealController: SWRevealViewController, didMoveToPosition position: FrontViewPosition) {
if revealController.frontViewPosition == FrontViewPosition.Left {
self.view.userInteractionEnabled = true
}
else {
self.view.userInteractionEnabled = false
}
}
我们弄错了第一个条件为真,第二个为假
func revealController(revealController: SWRevealViewController!, willMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = true
}
else
{
self.view.userInteractionEnabled = false
}
func revealController(revealController: SWRevealViewController!, didMoveToPosition position: FrontViewPosition)
{
if position == FrontViewPosition.Left // if it not statisfy try this --> if revealController.frontViewPosition == FrontViewPosition.Left
{
self.view.userInteractionEnabled = true
}
else
{
self.view.userInteractionEnabled = false
}
}