2012-07-20 61 views
0

我实现了两个ipad & iphone的TabBar应用程序。但在IPAD中,导航控制器不适用于表格单元格中的ipad nib。 viewdid Load方法不是为ipad调用的。 但它工作正常的iphone .. self.navigationController是空的ipad只在我的班级导航。 帮帮我!导航pushview控制器不能正常工作

我的代码如下:

//Connet.m: 

if(i==1) 
{ 
    TwitterController *tc; 
    if ([self isPad]) { 
    tc = [[TwitterController alloc] initWithNibName:@"TwitterController_ipad" bundle:nil];  
} 
else 
    tc = [[TwitterController alloc] initWithNibName:@"TwitterController" bundle:nil]; 

[self.navigationController pushViewController:tc animated:YES];   
NSLog(@"%@",self.navigationController); /Problem ****NULL*****///////   


//TWITTER.m  
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
     if (self) { 
      //Custom initialization 
      self.navigationController.navigationBarHidden = YES;   
     } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.navigationController.navigationBarHidden = YES; 
    NSString *urlAddress = @"https://twitter.com/UJUDGEIT1"; 
    //Create a URL object. 
    NSURL *url = [NSURL URLWithString:urlAddress]; 
    //URL Request Object 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
    //Load the request in the UIWebView. 
    [webv loadRequest:requestObj]; 
} 

回答

0

试试下面的代码:

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    NSString *[email protected]""; 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ 

     [email protected]"TwitterController_ipad"; 
    } 
    else{ 
     [email protected]"TwitterController"; 


    } 
    TwitterController *view = [[TwitterController alloc] initWithNibName:nibname bundle:nil]; 
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:view]; 

    self.window.rootViewController = self.navigationController; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

写这样的代码在您的应用程序委托类。 viewDidLoad方法被调用。

+0

但所有的都是navigationController工作。只有在我的这个类中,它不工作.. – 2012-07-21 12:25:34

+0

我实现TabBar应用程序 – 2012-07-21 13:12:40

0

piyush

如何实现标签栏。 使标签栏的每个控制器成为导航控制器。它可能会调用你的视图加载方法。

以下代码可能对您有所帮助。它在标签栏上创建2个控制器。最后在它到根视图控制器。

-(void)createTabbar{ 
    NSMutableArray *controllers = [[NSMutableArray alloc] init]; 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 

     //Controller 1 
     PasswordVC *pvc = [[PasswordVC alloc] initWithNibName:@"PasswordVC" bundle:nil]; 
     UINavigationController *passwordNav = [[UINavigationController alloc] initWithRootViewController:pvc]; 
     passwordNav.navigationController.navigationBarHidden=YES; 
     [controllers addObject:passwordNav]; 
     pvc.title = @"Password"; 
     [pvc release]; 

     [passwordNav release]; 

     //Controller 2 
     SettingVC *SVC = [[SettingVC alloc] initWithNibName:@"SettingVC" bundle:nil]; 
     UINavigationController *settingNav = [[UINavigationController alloc] initWithRootViewController:SVC]; 
     settingNav.navigationController.navigationBarHidden=YES; 
     [controllers addObject:settingNav]; 
     SVC.title = @"Settings"; 
     [SVC release]; 

     [settingNav release];  
    } 
    else {   //ipad 

    } 

    _tabBarController = [[[UITabBarController alloc] init] autorelease]; 
    _tabBarController.delegate=self; 
    _tabBarController.viewControllers = controllers; 
    _tabBarController.customizableViewControllers = controllers; 

    [UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:1.0]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:_window cache:NO]; 
    _window.rootViewController = _tabBarController; 

    [UIView commitAnimations]; 
} 
+0

看到我的代码我在coonect.m中获得了self.navegationController的NULL,但仅适用于IPAD。该应用程序工作正常的iPhone .. – 2012-07-24 10:07:34