在现有的Xcode故事板使用pkrevealcontroller(Using pkrevealcon

2019-08-16 22:02发布

我想在pkrevealcontroller滑动菜单集成到具有与塞格斯现有的情节串连图板,等我伸出UINavigationViewController和链接我的新类导航控制器上的脚本中现有的iOS项目。 在我的应用程序委托我做到以下几点:

MainNavViewController *frontViewController = [[MainNavViewController alloc] initWithRootViewController:[[myRootViewController alloc] init]];
UIViewController *rightViewController = [[menuViewController alloc] init];

self.revealController = [PKRevealController  revealControllerWithFrontViewController:frontViewController
                                                                rightViewController:rightViewController
                                                                            options:nil];

self.window.rootViewController = self.revealController;

当我运行应用程序,它成功地增加了滑动菜单图标,导航栏,以及幻灯片FrontView的,我想它。 但它不使用标题或塞格斯我对故事板添加。 就是我想甚至有可能。

Answer 1:

我认为问题是,你实例化一个新的frontViewController - 这不是一个在你的故事板。 我不完全知道如何做到这一点,但我会尝试像这样。 我会在故事板上添加一个UIViewController - 改变其类PKRevealController,并使其在故事板最初的控制器,但不要把它挂到场景的其余部分。 给你的MainNavViewController在IB的标识符,那么在你的应用程序代理更改代码这样:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.revealController = (PKRevealController *)self.window.rootViewController;
    UIViewController *rightViewController = [[menuViewController alloc] init];
    MainNavViewController *frontViewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"frontViewController"];
    [self.revealController setFrontViewController:frontViewController];
    [self.revealController setRightViewController:rightViewController];
    return YES;
}


Answer 2:

我的应用程序的委托不具备revealController变量所以不得不创建手册,就是你有什么呢?



Answer 3:

斯威夫特利用这一点,

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    var frontViewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("frontVC") as! UIViewController

    var leftViewController:UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("leftVC") as! UIViewController

    var revealController:PKRevealController = PKRevealController(frontViewController: frontViewController, leftViewController: leftViewController)

    self.window?.rootViewController = revealController

    return true
}


文章来源: Using pkrevealcontroller on existing Xcode storyboard