2011-12-15 34 views
0

可能性の重複:
show a login screen before Tab bar controller?表示ログイン画面

が、私はそれがタブバーコントローラを表示するようにした後、最初に表示ログイン画面でなければなりませんiphoneのアプリケーションを設計しています5つのタブがあります。最初はログイン画面を起動できますが、ログインボタンがクリックされたときにタブバーコントローラを表示することはできません。親切にコードを助けてください。ここに私のコードです:これは、ビューベースのアプリケーションです。ここに私のコードです:

delegate.h

@interface iphoneAppDelegate : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 

    IphineViewController *viewController; 
    IBOutlet UITabBarController *aTabBarController; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 

@property (nonatomic, retain) IBOutlet IphoneViewController *viewController; 

@property (nonatomic, retain) IBOutlet UITabBarController *aTabBarController; 

@end 

delegate.M

-(void)applicationDidFinishLaunching:(UIApplication *)application { 

// Override point for customization after app launch 

    [window addSubview:viewController.view]; 

    [window makeKeyAndVisible]; 

    LoginView *loginView=[[LoginView alloc]initWithNibName:@"LoginView" bundle:nil]; 

    [window addSubview:loginView.view]; 

} 

loginView.M

TabBarController *tabBarController = [[TabBarController alloc]initWithNibName:@"TabBarController" bundle:nil]; 

    [self.view addSubView: tabBarController.view]; 


    [tabBarController release]; 

、私の質問は:

1)することができます私はタブバーのコントローラーをログインビュー。私はdelegate.hにtaバーを宣言しました これは、私のloginview.mでタブバーコントローラを使用する方法が正しくない場合

+0

あなたは以前の質問に対する回答を受け入れる必要があります。答えを受け入れることができない人は、質問に答えようと努力しないでください。 –

答えて

1

あなたは間違ったアプリケーションのレイアウトを選択したと思います。ウィンドウベースのアプリケーションを選択する必要があります。次に、アプリケーションウィンドウでログイン画面を設定し、ログインボタンを押すと、アプリケーションのウィンドウでタブバーコントローラを設定する必要があります。やってみなよ。あなたは指示に従って試してみてくださいナビゲーションベースのアプリケーションでのログインビューを表示するには

0

あなたは普通のUIViewを持つようにUIVeiwControllerの代わりのUITableViewControllerのサブクラスであるためにあなたのRootViewControllerを変更し、XIBファイルを変更する必要がありますUITableViewではなくそのビューとして表示します。

そして、タブバーを設定するには、次の関数を置く:

-(void)setTabbar:(UIView *) view 
{ 
UIButton *btn1,*btn2,*btn3,*btn4,*btn5,*btn6; 
UIView *tabView; 

     tabView=[[UIView alloc]initWithFrame:CGRectMake(0, 375, 320, 44)]; 
     btn1=[UIButton buttonWithType:UIButtonTypeCustom]; 
     btn1.frame=CGRectMake(0, 0, 53, 44); 
     btn1.tag=1; 
     [btn1 setImage:[UIImage imageNamed:@"b1.png"] forState:UIControlStateNormal]; 
     [btn1 setImage:[UIImage imageNamed:@"b2.png"] forState:UIControlStateSelected]; 
     [btn1 addTarget:self action:@selector(btnTabclick::) forControlEvents:UIControlEventTouchDown]; 
     [tabView addSubview:btn1]; 


     btn2=[UIButton buttonWithType:UIButtonTypeCustom]; 
     btn2.frame=CGRectMake(53, 0, 53, 44); 
     btn2.tag=2; 
     [btn2 setImage:[UIImage imageNamed:@"b1.png"] forState:UIControlStateNormal]; 
     [btn2 setImage:[UIImage imageNamed:@"b2.png"] forState:UIControlStateSelected]; 
     [btn2 addTarget:self action:@selector(btnTabclick::) forControlEvents:UIControlEventTouchDown]; 
     [tabView addSubview:btn2]; 

     btn3=[UIButton buttonWithType:UIButtonTypeCustom]; 
     btn3.frame=CGRectMake(106, 0, 53, 44); 
     btn3.tag=3; 
     [btn3 setImage:[UIImage imageNamed:@"b1.png"] forState:UIControlStateNormal]; 
     [btn3 setImage:[UIImage imageNamed:@"b1.png"] forState:UIControlStateSelected]; 
     [btn3 addTarget:self action:@selector(btnTabclick::) forControlEvents:UIControlEventTouchDown]; 
     [tabView addSubview:btn3]; 

     btn4=[UIButton buttonWithType:UIButtonTypeCustom]; 
     btn4.frame=CGRectMake(159, 0, 55, 44); 
     btn4.tag=4; 
     [btn4 setImage:[UIImage imageNamed:@"b1.png"] forState:UIControlStateNormal]; 
     [btn4 setImage:[UIImage imageNamed:@"b1.png"] forState:UIControlStateSelected]; 
     [btn4 addTarget:self action:@selector(btnTabclick::) forControlEvents:UIControlEventTouchDown]; 
     [tabView addSubview:btn4]; 

     btn5=[UIButton buttonWithType:UIButtonTypeCustom]; 
     btn5.frame=CGRectMake(214, 0, 54, 44); 
     btn5.tag=5; 
     [btn5 setImage:[UIImage imageNamed:@"b1.png"] forState:UIControlStateNormal]; 
     [btn5 setImage:[UIImage imageNamed:@"b2.png"] forState:UIControlStateSelected]; 
     [btn5 addTarget:self action:@selector(btnTabclick::) forControlEvents:UIControlEventTouchDown]; 
     [tabView addSubview:btn5]; 

     btn6=[UIButton buttonWithType:UIButtonTypeCustom]; 
     btn6.frame=CGRectMake(266, 0, 55, 44); 
     btn6.tag=6; 
     [btn6 setImage:[UIImage imageNamed:@"b1.png"] forState:UIControlStateNormal]; 
     [btn6 setImage:[UIImage imageNamed:@"b2.png"] forState:UIControlStateSelected]; 
     [btn6 addTarget:self action:@selector(btnTabclick::) forControlEvents:UIControlEventTouchDown]; 
     [tabView addSubview:btn6]; 


if (TAG==1) 
{ 
    [btn1 setSelected:YES]; 
} 
if (TAG==2) 
{ 
    [btn2 setSelected:YES]; 
} 
if (TAG==3) 
{ 
    [btn3 setSelected:YES]; 
} 
if (TAG==4) 
{ 
    [btn4 setSelected:YES]; 
} 
if (TAG==5) 
{ 
    [btn5 setSelected:YES]; 
} 
if (TAG==6) 
{ 
    [btn6 setSelected:YES]; 
} 

[view addSubview:tabView]; 

if ([btnArry count]!=0 || [btnArry retainCount]!=0) 
{ 
    [btnArry release]; 
} 

btnArry=[[NSArray alloc]initWithObjects:btn1,btn2,btn3,btn4,btn5,btn6, nil ]; 
} 

そして、ボタンクリックイベントを処理するためのアプリのデリゲートファイル内のコードの上に置いた後、次の機能

-(IBAction)btnTabclick:(id)sender:(UIView*)view 
{ 
    TAG=[sender tag]; 
if (TAG==1) { 
    //code to handle click event  

}else if(TAG==2){ 
    //code to handle click event 
}else if(TAG==3){ 
    //code to handle click event 
}else if(TAG==4){ 
    //code to handle click event 
}else if(TAG==5){ 
    //code to handle click event  
}else if(TAG==6){ 
    //code to handle click event 
} 
} 

を置くだけで次のようにsettabbar関数を呼び出します:

[((AppDelegate *)[[UIApplication sharedApplication]delegate]) setTabbar:self.view]; 
+0

どうすればいいのか教えていただけますか? stark –

+0

実際に何をしたかったのですか?私のアプリが起動しました。私はログイン画面を表示する必要があります。ログインが成功したら、これは私の必要条件であるタブバーコントロールを表示する必要があります。あなたがコードで私を助けることができます –

+0

ちょっとKarthik Varma私はあなたのために役立つだろう私のanswer.o希望を更新しました。 – Stark

0

を選択する必要があります。appDelegateにはtabBarControllerオブジェクトが自動的に作成され、tabBarController.viewaddSubviewメソッドに設定されます。あなたが変更する必要がどのような ことAppDeleagte DidFinishLaunching method

appDelegateでメソッドを作成し、その後[window addSubview:loginviewcontroller.view];

をごlogin view controller object

を作成しているように: -

-(void)loadTabBarControllerView 
{ 
[[loginviewcontroller view]removeFromSuperview]; 
[window addSubview:tabBarController.view]; 
} 

そして、あなたのloginボタンのクリックに(呼び出しを行いますloadTabBarControllerView方法appDelegate

[*appDelegateobject* loadTabBarControllerView]; 
関連する問題