0

私はiPadとiPhoneの両方にTabBarアプリを実装しています。しかし、IPAD では、テーブル セルの iPad ペン先に対してナビゲーション コントローラが機能しません。viewdid Load メソッドは ipad では呼び出されません。しかし、それはiphoneではうまく動作します..self.navigationControllerは、ナビゲートするクラスでのみiPadに対してNULLです。助けて!!

私のコードは次のとおりです。

//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];
}
4

2 に答える 2

0

次のコードを試してください。

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

        nibname=@"TwitterController_ipad";   
    }
    else{
        nibname=@"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メソッドが呼び出されます。

于 2012-07-21T11:58:29.967 に答える
0

ピユシュ

タブバーの実装方法。タブバーの各コントローラーをナビゲーションコントローラーにします。ビューがロードメソッドを実行したと呼ばれる場合があります。

次のコードが役立つ場合があります。タブバーに2つのコントローラーを作成します。最後に、ルートView Controllerに移動します。

-(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];
}
于 2012-07-24T09:25:28.730 に答える