如何在ios中推送pop-in-swreveal视图控制器?
我有一个类似Facebook的应用程序。我想按下并弹出SWREVIEW控制器。如何才能做到这一点?检查下图如何在ios中推送pop-in-swreveal视图控制器?,ios,objective-c,swrevealviewcontroller,Ios,Objective C,Swrevealviewcontroller,我有一个类似Facebook的应用程序。我想按下并弹出SWREVIEW控制器。如何才能做到这一点?检查下图 任何帮助都将不胜感激。在您的应用程序代理中,您必须通过Windows的rootViewController登录管理器/仪表板 第1步: 在AppDelegate中编写一个方法,例如调用setupRootVC() 第2步:调用setupRootVC()method fromdid使用选项完成启动 第3步:在您的LoginVC中,用户成功登录后,调用AppDelegate的setupRoot
任何帮助都将不胜感激。在您的应用程序代理中,您必须通过Windows的rootViewController登录管理器/仪表板 第1步: 在AppDelegate中编写一个方法,例如调用
setupRootVC()
第2步:调用setupRootVC()
method fromdid使用选项完成启动
第3步:在您的LoginVC
中,用户成功登录后,调用AppDelegate的setupRootVC()
方法
步骤4:确保SWRevealController
的frontViewController
位于UINavigationController
内,以便您可以在其中推动和弹出
我建议您阅读更多有关iOS应用程序架构的信息,以及rootViewController
和UINavigationController
的工作原理。
希望对您有所帮助。在您的应用程序代理中,您必须通过Windows的rootViewController登录管理器/仪表板
第1步:
在AppDelegate中编写一个方法,例如调用setupRootVC()
第2步:调用setupRootVC()
method fromdid使用选项完成启动
第3步:在您的LoginVC
中,用户成功登录后,调用AppDelegate的setupRootVC()
方法
步骤4:确保SWRevealController
的frontViewController
位于UINavigationController
内,以便您可以在其中推动和弹出
我建议您阅读更多有关iOS应用程序架构的信息,以及rootViewController
和UINavigationController
的工作原理。
希望对您有所帮助。如果您想从SWREVEL推送到任何控制器
UIStoryboard*Storyboard=[AppDelegate storyBoardType];
yourController *your=(yourController*)[Storyboard instantiateViewControllerWithIdentifier:@"yourControllerId"];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController: your];
[navController setViewControllers: @[your] animated: YES];
[self.revealViewController setFrontViewController:navController];
[self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];
}
从任何控制器到视图控制器,您必须在操作中添加此行
[self.revealViewController revealToggleAnimated:YES];
如果要从SWREVEL推送到任何控制器
UIStoryboard*Storyboard=[AppDelegate storyBoardType];
yourController *your=(yourController*)[Storyboard instantiateViewControllerWithIdentifier:@"yourControllerId"];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController: your];
[navController setViewControllers: @[your] animated: YES];
[self.revealViewController setFrontViewController:navController];
[self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];
}
从任何控制器到视图控制器,您必须在操作中添加此行
[self.revealViewController revealToggleAnimated:YES];
我会有这样一个故事板:
在LoginViewController中:
@IBAction func skip(_ sender: Any) {
// Show dashboard
let sb = UIStoryboard(name: "Main", bundle: nil)
let controller = sb.instantiateViewController(withIdentifier: "DashboardNavigationController")
revealViewController().setFront(controller, animated: true)
}
@IBAction func validateUser(_ sender: Any) {
// show profile
// Here test for valid user name and password
// If OK
let sb = UIStoryboard(name: "Main", bundle: nil)
let dashboardNC = sb.instantiateViewController(withIdentifier: "DashboardNavigationController") as! UINavigationController
let profileVC = sb.instantiateViewController(withIdentifier: "ProfileViewController")
dashboardNC .pushViewController(profileVC, animated: false)
revealViewController().setFront(dashboardNC, animated: true)
}
@IBAction func dismissKeyboard(_ textField: UITextField) {
textField.resignFirstResponder()
}
class DashboardViewController: UIViewController {
@IBOutlet weak var revealButton: UIBarButtonItem!
@IBOutlet weak var rightButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
revealButton.target = revealViewController()
revealButton.action = #selector(SWRevealViewController.revealToggle(_:))
rightButton.target = revealViewController()
rightButton.action = #selector(SWRevealViewController.rightRevealToggle(_:))
revealViewController().tapGestureRecognizer()
revealViewController().panGestureRecognizer()
revealViewController().rearViewRevealOverdraw = 0
revealViewController().rightViewRevealOverdraw = 0
}
在MenuTableViewController(侧菜单)中:
仪表板视图控制器:
@IBAction func skip(_ sender: Any) {
// Show dashboard
let sb = UIStoryboard(name: "Main", bundle: nil)
let controller = sb.instantiateViewController(withIdentifier: "DashboardNavigationController")
revealViewController().setFront(controller, animated: true)
}
@IBAction func validateUser(_ sender: Any) {
// show profile
// Here test for valid user name and password
// If OK
let sb = UIStoryboard(name: "Main", bundle: nil)
let dashboardNC = sb.instantiateViewController(withIdentifier: "DashboardNavigationController") as! UINavigationController
let profileVC = sb.instantiateViewController(withIdentifier: "ProfileViewController")
dashboardNC .pushViewController(profileVC, animated: false)
revealViewController().setFront(dashboardNC, animated: true)
}
@IBAction func dismissKeyboard(_ textField: UITextField) {
textField.resignFirstResponder()
}
class DashboardViewController: UIViewController {
@IBOutlet weak var revealButton: UIBarButtonItem!
@IBOutlet weak var rightButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
revealButton.target = revealViewController()
revealButton.action = #selector(SWRevealViewController.revealToggle(_:))
rightButton.target = revealViewController()
rightButton.action = #selector(SWRevealViewController.rightRevealToggle(_:))
revealViewController().tapGestureRecognizer()
revealViewController().panGestureRecognizer()
revealViewController().rearViewRevealOverdraw = 0
revealViewController().rightViewRevealOverdraw = 0
}
不是Objective-C,但你可以轻松翻译 我会有这样一个故事板:
在LoginViewController中:
@IBAction func skip(_ sender: Any) {
// Show dashboard
let sb = UIStoryboard(name: "Main", bundle: nil)
let controller = sb.instantiateViewController(withIdentifier: "DashboardNavigationController")
revealViewController().setFront(controller, animated: true)
}
@IBAction func validateUser(_ sender: Any) {
// show profile
// Here test for valid user name and password
// If OK
let sb = UIStoryboard(name: "Main", bundle: nil)
let dashboardNC = sb.instantiateViewController(withIdentifier: "DashboardNavigationController") as! UINavigationController
let profileVC = sb.instantiateViewController(withIdentifier: "ProfileViewController")
dashboardNC .pushViewController(profileVC, animated: false)
revealViewController().setFront(dashboardNC, animated: true)
}
@IBAction func dismissKeyboard(_ textField: UITextField) {
textField.resignFirstResponder()
}
class DashboardViewController: UIViewController {
@IBOutlet weak var revealButton: UIBarButtonItem!
@IBOutlet weak var rightButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
revealButton.target = revealViewController()
revealButton.action = #selector(SWRevealViewController.revealToggle(_:))
rightButton.target = revealViewController()
rightButton.action = #selector(SWRevealViewController.rightRevealToggle(_:))
revealViewController().tapGestureRecognizer()
revealViewController().panGestureRecognizer()
revealViewController().rearViewRevealOverdraw = 0
revealViewController().rightViewRevealOverdraw = 0
}
在MenuTableViewController(侧菜单)中:
仪表板视图控制器:
@IBAction func skip(_ sender: Any) {
// Show dashboard
let sb = UIStoryboard(name: "Main", bundle: nil)
let controller = sb.instantiateViewController(withIdentifier: "DashboardNavigationController")
revealViewController().setFront(controller, animated: true)
}
@IBAction func validateUser(_ sender: Any) {
// show profile
// Here test for valid user name and password
// If OK
let sb = UIStoryboard(name: "Main", bundle: nil)
let dashboardNC = sb.instantiateViewController(withIdentifier: "DashboardNavigationController") as! UINavigationController
let profileVC = sb.instantiateViewController(withIdentifier: "ProfileViewController")
dashboardNC .pushViewController(profileVC, animated: false)
revealViewController().setFront(dashboardNC, animated: true)
}
@IBAction func dismissKeyboard(_ textField: UITextField) {
textField.resignFirstResponder()
}
class DashboardViewController: UIViewController {
@IBOutlet weak var revealButton: UIBarButtonItem!
@IBOutlet weak var rightButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
revealButton.target = revealViewController()
revealButton.action = #selector(SWRevealViewController.revealToggle(_:))
rightButton.target = revealViewController()
rightButton.action = #selector(SWRevealViewController.rightRevealToggle(_:))
revealViewController().tapGestureRecognizer()
revealViewController().panGestureRecognizer()
revealViewController().rearViewRevealOverdraw = 0
revealViewController().rightViewRevealOverdraw = 0
}
不是Objective-C,但你可以轻松翻译 您可以使用UINavigationController的方法:
- (void)setViewControllers:(NSArray<UIViewController *> *)viewControllers animated:(BOOL)animated NS_AVAILABLE_IOS(3_0);
您可以使用UINavigationController的方法:
- (void)setViewControllers:(NSArray<UIViewController *> *)viewControllers animated:(BOOL)animated NS_AVAILABLE_IOS(3_0);
不久前,AppCoda使用SWRevealViewController做了一个教程。他们给出了相当详细的指示@Erik请检查图片。AppCoda不久前做了一个使用SWRevealViewController的教程。他们给出了相当详细的指示@Erik请检查图片..你能给我演示一下吗..在objective cTell me中你尝试了什么,Stackoverflow不是你想要的。你能给演示一下吗..在objective cTell me中你尝试了什么,Stackoverflow不是你想要的。你能转换成objcNo吗?很简单,你可以为此付出努力,我想。我是IOS的新手。是的,那个么你们必须学习苹果的文档。强烈推荐!请帮我解决这个问题…我知道导航,但这是第三方,这就是为什么我感到困惑的原因。你可以用objcNo转换吗?我想,这很简单,你可以为此付出努力。我是iosYes的新手,那么你必须学习苹果的文档。强烈推荐!请帮我摆脱这个…我知道导航,但这是第三方,这就是为什么我感到困惑