无法传递到另一个viewController,导航问题

时间:2012-08-18 12:56:14

标签: iphone objective-c cordova uiviewcontroller uinavigationcontroller

我有一个工作项目,其中一个屏幕例如是 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];

1 个答案:

答案 0 :(得分:1)

检查UINavigationController中是否有Appdelegate。您需要将自己的应用rootViewController设为UINavigationControllerUINavigationController

中添加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是您的第一个应用视图。