Отображение экрана входа в систему перед контроллером панели вкладок

Возможный дубликат:
показать экран входа перед контроллером панели вкладок?

я разрабатываю приложение для 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];
Другие вопросы по тегам