如何将Button Action连接到Tabbar Viewcontrollers

时间:2012-11-20 09:14:58

标签: iphone objective-c ios ipad

我是iPhone开发的新手。我正在开发一个TabBarViewcontroller应用程序(iPhone和iPad),我已经创建了一个LoginViewController和一个Button Action。 我的期望是点击该按钮后,控件将从LoginViewController移至TabBarViewController。在这个TabBarViewcontroller我有5个Tabbar(项目)ViewControllers。 有可能吗?

如果可以,请分享您的想法。

4 个答案:

答案 0 :(得分:7)

首先,在UINavigationController中取UITabbarControllerMainWindow.xib,然后将IBOutlet绑定到相应的字段.. ans将LoginViewController设置为{的rootViewController {1}} ..

然后在UINavigationController方法中写下这个..

didFinishLaunchingWithOptions

现在在这样的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [self.window setRootViewController:navController]; [self.window makeKeyAndVisible]; return YES; } 中创建其他方法..

AppDelegate.m

在“登录”按钮操作上..按以下方式调用此方法..

-(void)loadApplication
{
    [navController pushViewController:tabbarController animated:NO];
}

答案 1 :(得分:5)

因此,在按钮操作中尝试以下代码

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
appDelegate.window.rootViewController = tabBarController;

答案 2 :(得分:5)

使用此方法从任何其他视图添加tabbar ..

    -(void)addTabBarControllerInwindow 
    {
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:1.0];
        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.window cache:YES];

        [self.navigationController.view removeFromSuperview];
        [self.window addSubview:tabBarController.view];
        [UIView commitAnimations];
    }

将此方法放在AppDelegate.m文件和任何viewController中,例如在LoginView控制器中  当你想添加tabbar然后声明委托对象并调用此方法时,如下所示..

 AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
 [appDelegate addTabBarControllerInwindow];

答案 3 :(得分:1)

我认为你可能在一个项目中寻找多个VC。因此,在appDelegate中为loginVC和其他VC(对于tabbar)声明并初始化VC,并在登录成功后调用以下函数。

启动时将LoginVC设为RootViewController

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{// declare LoginVC and make it rootViewController
 self.window.rootViewController = self._loginVCObj;
    [self.window makeKeyAndVisible];
}

#pragma mark- Continue to next screen after successful Login

-(void) continueToNextView
{   // Handle UI after Login like.
 [_loginVCObj._indicator stopAnimating];
    [_loginVCObj._loginButton setEnabled:YES];
//add the VC to the tabbar 
    self._tabBarController.viewControllers = [NSArray arrayWithObjects:self.navigationControllerList,_favItemListNavObj, _toDoHereVC, _settingNavObj, nil]; 
// make tabbar as rootViewController
     self.window.rootViewController = self._tabBarController;
}