我有一个工作项目,其中一个屏幕例如是 ViewController 1 - tableView。我在ViewController 1中选择一行后尝试传递数据并导航到 ViewController 2 。我添加了以下代码:
DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];
dvController.selectedItem = selectedItem;
[self.navigationController pushViewController:dvController animated:YES];
[dvController release];
但它没有传递给 ViewController 2 。我认为问题出在navigatorController上。 我应该在哪里添加它?到ViewController 1的xib文件?或者到mainAppDelegate - 我不想触摸它,因为它已经在使用它的设置......
我在appDelegate
中声明了UINavigationController * navigationController我应该检查什么?
对代码进行一些更改后(感谢@Vakul Saini) appDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.View1 = [[startSearching alloc] initWithNibName:@"StartSearching" bundle:nil];
self.currentNC = [[UINavigationController alloc] initWithRootViewController:self.View1];
//this line start the startSearching at the begining and its passing to //secondViewController
self.window.rootViewController = self.currentNC;
//但是这条线从原始起始页面开始,但是视图的转移//不会消失
[self.window setRootViewController: self.viewController];
appDelegate.h
@property (strong, nonatomic) startSearching *View1;
@property (strong, nonatomic) UINavigationController *currentNC;
startSearching.m
detailCon *detailCo =[[detailCon alloc] initWithNibName: @"detailView" bundle: [NSBundle mainBundle]];
[detailCon release];
UINavigation *currentNC1 = [[AppDelagate sharedInstance] currentNC];
[currentVC1 pushViewController:detailCo animated:YES];
答案 0 :(得分:1)
检查UINavigationController
中是否有Appdelegate
。您需要将自己的应用rootViewController
设为UINavigationController
在UINavigationController
appdelegate
Appdelegate.h文件
#import <UIKit/UIKit.h>
@class ViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@property (strong, nonatomic) UINavigationController *navCon;
@end
Appdelegate.m文件
#import "AppDelegate.h"
#import "ViewController.h"
@implementation AppDelegate
@synthesize window = _window;
@synthesize viewController = _viewController;
@synthesize navCon = _navCon;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.navCon = [[UINavigationController alloc]initWithRootViewController:self.viewController];
self.window.rootViewController = self.navCon;
[self.window makeKeyAndVisible];
return YES;
}
ViewController
是您的第一个应用视图。