3

pkrevealcontrollerスライディングメニューを、セグエなどを含む既存のストーリーボードを持つ既存のiOSプロジェクトに統合しようとしています。UINavigationViewControllerを拡張し、新しいクラスをストーリーボードのNavControllerにリンクしました。私のアプリデリゲートでは、次のことを行います。

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;

アプリケーションを実行すると、スライドメニューアイコンがナビゲーションバーに正常に追加され、フロントビューが希望どおりにスライドします。しかし、ストーリーボードに追加したタイトルやセグエは使用していません。私が可能な限り試みていることです。

4

3 に答える 3

10

問題は、新しい frontViewController をインスタンス化していることだと思います。これは、ストーリーボードにあるものではありません。これを行う方法は正確にはわかりませんが、このようにしてみます。ストーリーボードに UIViewController を追加します。そのクラスを PKRvealController に変更し、それをストーリーボードの最初のコントローラーにしますが、残りのシーンには接続しないでください。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;
}
于 2013-02-12T04:53:22.507 に答える
0

私のアプリデリゲートにはrevealController変数がないため、そのマニュアルを作成する必要がありましたが、それはあなたがしなければならないことですか?

于 2013-04-11T13:09:33.190 に答える
0

Swiftでは、これを使用します。

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
}
于 2015-05-11T14:02:49.770 に答える