如何在ios中推送pop-in-swreveal视图控制器?

如何在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

我有一个类似Facebook的应用程序。我想按下并弹出SWREVIEW控制器。如何才能做到这一点?检查下图


任何帮助都将不胜感激。

在您的应用程序代理中,您必须通过Windows的rootViewController登录管理器/仪表板

第1步: 在AppDelegate中编写一个方法,例如调用
setupRootVC()

第2步:调用
setupRootVC()
method from
did使用选项完成启动

第3步:在您的
LoginVC
中,用户成功登录后,调用AppDelegate的
setupRootVC()
方法

步骤4:确保
SWRevealController
frontViewController
位于
UINavigationController
内,以便您可以在其中推动和弹出

我建议您阅读更多有关iOS应用程序架构的信息,以及
rootViewController
UINavigationController
的工作原理。
希望对您有所帮助。

在您的应用程序代理中,您必须通过Windows的rootViewController登录管理器/仪表板

第1步: 在AppDelegate中编写一个方法,例如调用
setupRootVC()

第2步:调用
setupRootVC()
method from
did使用选项完成启动

第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的新手,那么你必须学习苹果的文档。强烈推荐!请帮我摆脱这个…我知道导航,但这是第三方,这就是为什么我感到困惑