![](/img/trans.png)
[英]pushViewController don't work when my tableView is in an TabBar
[英]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.