繁体   English   中英

pushViewController不起作用

[英]pushViewController don't work

我在appDelegate中设置了navigationController,但现在我在另一个ViewController中调用它并且它不起作用。 这是我的代码:

在appDelegate.h中

  #import <UIKit/UIKit.h>

  @class RootViewController;

  @interface AppDelegate : UIResponder <UIApplicationDelegate>

  @property (strong, nonatomic) UIWindow *window;

  @property (strong, nonatomic) RootViewController *viewController;

  @property (strong, nonatomic) UINavigationController * navigationController;

  @end

在appDelegate.m中

  @implementation AppDelegate

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

      RootViewController * rootMenu;
     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    rootMenu = [[RootViewController alloc] initWithNibName:@"RootViewController_iPhone" bundle:nil];
    } else {
    rootMenu = [[RootViewController alloc] initWithNibName:@"RootViewController_iPad" bundle:nil];
}

     self.viewController = rootMenu;

     self.navigationController =[[UINavigationController alloc]initWithRootViewController:rootMenu];

     self.window.rootViewController = self.viewController;

    [self.window makeKeyAndVisible];
     return YES;
    }

在rootViewController.h中

    #import <UIKit/UIKit.h>

    @interface RootViewController : UIViewController <UIGestureRecognizerDelegate>{

     }

    @property (nonatomic, retain) UIImageView * bigImageView;
    @property (nonatomic, assign)BOOL fromRootViewController;


     - (void)handleTap:(UITapGestureRecognizer *)recognizer;




    @end

在RootViewController.m中

   - (void)handleTap:(UITapGestureRecognizer *)recognizer{

          if (recognizer.state == UIGestureRecognizerStateEnded)     {
          MenuViewController * menu = [[MenuViewController alloc]initWithNibName:@"MenuViewController" bundle:nil];

          self.fromRootViewController = YES;

          [self.navigationController pushViewController:menu animated:YES];



     }
   }

提前致谢

在AppDelegate中将第1行替换为2

1)self.window.rootViewController = self.viewController;

2)self.window.rootViewController = self.navigationController;

它会工作

原因是您的应用程序中没有navigationController

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM