2011-12-15 2 views
0

Можно создать дубликат:
show a login screen before Tab bar controller?Дисплей экран Войти перед тем контроллером бар Tab

я проектирования приложения iPhone, который должен быть экран Логин вначале, после чего он должен отображать контроллер бар вкладки с 5 вкладками. Вначале можно запустить экран входа в систему, но при нажатии кнопки входа в систему am unble, чтобы отобразить контроллер панели вкладок, любезно помогите мне с кодом. вот мой код: это приложение на основе представления. Вот мой код:

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) может Я использую контроллер панели вкладок в вид входа в систему. Я объявил ta bar в делетете.h Если это не правильно, как использовать контроллер панели вкладок в моем loginview.m

+0

Вам необходимо принять ответы на свои предыдущие вопросы, это не позволяет людям приложить усилия, чтобы ответить на ваши вопросы, если вас не беспокоят, чтобы принять их ответы. –

ответ

1

Я думаю, что вы выбрали неправильный макет приложения. Вы должны выбрать приложение на основе окон. Тогда вам нужно сделать то, что сначала вы установили свой экран входа в окно приложения, а затем, как только нажата кнопка входа в систему, вы устанавливаете свой контроллер табуляции в окне приложения. Просто попробуйте.

0

Чтобы показать вид входа в приложения на основе навигации, вы должны попробовать следующие инструкции:

Вам просто нужно изменить свой RootViewController быть подклассом UIVeiwController вместо UITableViewController и изменить файл XIb иметь нормальный UIView как его представление вместо UITableView.

Затем поместите следующую функцию, чтобы установить TabBar:

-(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 я обновил свой ответ. надеюсь, что это будет полезно для вас. – Stark

0

Вам необходимо выбрать TabBarBased Application. От этого он автоматически создаст объект tabBarController в вашем appDelegate и установит, что tabBarController.view в методе addSubview. Что нужно изменить в AppDeleagte DidFinishLaunching method

создать свой login view controller object

затем [window addSubview:loginviewcontroller.view];

Сделать метод в appDelegate как: -

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

А на кнопке login мыши сделать (вызов loadTabBarControllerView метод appDelegate)

[*appDelegateobject* loadTabBarControllerView]; 
Смежные вопросы