0

可能重复:
在标签栏控制器之前显示登录屏幕?

我正在设计一个 iphone 应用程序,它最初应该显示登录屏幕,之后它应该显示带有 5 个标签的标签栏控制器。我最初能够启动登录屏幕,但是当单击登录按钮时无法显示标签栏控制器,请帮助我解决代码。这是我的代码:这是一个基于视图的应用程序。这是我的代码:

委托人.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

委托人

-(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];

}

登录视图.M

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

    [self.view addSubView: tabBarController.view];


    [tabBarController release];

我的问题是:

1)我可以在登录视图中使用标签栏控制器吗?我已经在 delegate.h 中声明了 ta bar 如果这不正确如何在我的 loginview.m 中使用标签栏控制器

4

3 回答 3

1

我认为您选择了错误的应用程序布局。您应该选择基于窗口的应用程序。然后你需要做的是首先你在应用程序窗口中设置你的登录屏幕,然后一旦按下登录按钮,你就在应用程序窗口中设置你的标签栏控制器。就试一试吧。

于 2011-12-15T06:33:33.450 回答
0

要在基于导航的应用程序中显示登录视图,您应该尝试以下说明:

您只需将 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];
于 2011-12-15T06:38:53.963 回答
0

您需要选择TabBarBased Application.From ,它将自动tabBarController在您的对象中创建一个对象并在方法中appDelegate设置该对象。你需要改变的是tabBarController.viewaddSubviewAppDeleagte DidFinishLaunching method

创建你的login view controller object

然后[window addSubview:loginviewcontroller.view];

将方法设置appDelegate为:-

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

然后在你的login按钮上点击 do(call loadTabBarControllerViewmethod of appDelegate)

[*appDelegateobject* loadTabBarControllerView];
于 2011-12-15T07:27:32.513 回答