0

在我的应用我的根视图控制器的TabBar 于一身的TabBar控制器I使用表格视图我想推视图控制器时,按细胞 但是当我使用PushViewController在tableview中

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    TripDetailView * TripDetailViewObjec = [[TripDetailView alloc]init]; 
    [self.navigationController pushViewController:TripDetailViewObjec animated:YES]; 
} 

不会做任何事情,是因为Self.navigation=null

和我尝试的AppDelegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    AppDelegate * ApplicationDelegate =[[UIApplication sharedApplication]delegate]; 
     [[ApplicationDelegate Nav] pushViewController:TripDetailViewObjec animated:YES]; 
} 

创建的UINavigationController我的AppDelegate

@interface AppDelegate : UIResponder <UIApplicationDelegate> 
{ 
    WeekendTrips * WeekendTripsObject ; 
    UINavigationController * Nav; 
} 

@property (strong, nonatomic) UIWindow *window; 
@property (strong,nonatomic) UINavigationController * Nav; 
@end 

@implementation AppDelegate 
@synthesize Nav; 

@synthesize window = _window; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 
WeekendTripsObject = [[WeekendTrips alloc]init]; 

    Nav=[[UINavigationController alloc]initWithRootViewController:WeekendTripsObject]; 
    [self.view addSubView Nav.view]; 
    return YES; 
} 

,这不起作用 我可以做什么? 提前致谢

回答

1

您需要在您的appdelegate中创建一个UINavigationController的实例。 而您需要在标签栏控制器的视图中添加导航栏。

如果在xib中有一个选项卡栏,请将UINavigationController对象从库窗口拖到标签栏的树视图中。将导航控制器放置在标签栏控制器内,然后拖动导航控制器内的现有视图控制器。

如果你正在创建的TabBar编程这是相当简单:

不喜欢:

UIViewController *viewController1 = [[UIViewController alloc] initWithNibName:@"yournib1" bundle:nil]; 
UINavigationController *navigationcontroller = [[UINavigationController alloc] initWithRootViewController:viewController1]; 

UIViewController *viewController2 = [[UIViewController alloc] initWithNibName:@"yournib2" bundle:nil]; 

self.tabBarController = [[UITabBarController alloc] init]; 
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navigationcontroller, viewController2, nil]; 

请参阅本tutorial

+0

真的很感谢你们Midhun ......我问你更多的问题至今 –

+0

@TefaMohamed:这是确定的家伙:) –

0

您需要使用UINaviatigationController为您的应用程序根视图控制器然后添加第一个表格视图作为导航控制器的导航根视图。然后,您可以使用[self.navigationController pushViewController:animated:]推送其他表格视图。

+0

如果我做这个我RootViewController的将变更为表视图,我想保持我的RootViewController的是的TabBar –

+0

我知道这是有点令人困惑的话题,但请仔细阅读。应用程序的根视图控制器(应该是UINavigationController)和导航控制器的根视图控制器(应该是UITableViewController)之间有区别! – miho