Отображение экрана входа в систему перед контроллером панели вкладок
Возможный дубликат:
показать экран входа перед контроллером панели вкладок?
я разрабатываю приложение для 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) Могу ли я использовать контроллер панели вкладок в представлении входа в систему. Я объявил ta bar в делегате. Если это не правильно, как использовать контроллер панели вкладок в моем login view.m
3 ответа
Я думаю, что вы выбрали неправильный макет приложения. Вы должны выбрать приложение на основе окна. Затем вам нужно сначала установить экран входа в окно приложения, а затем, после нажатия кнопки входа, установить контроллер вкладок в окне приложения. Просто попробуйте.
Вам нужно выбрать 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];
Чтобы отобразить вид входа в приложение на основе навигации, попробуйте следующие инструкции:
Вам просто нужно изменить свой RootViewController, чтобы он был подклассом UIVeiwController вместо UITableViewController, и изменить файл xib так, чтобы в качестве его представления был обычный UIView вместо 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];