我是iPhone开发的新手。我正在开发一个TabBarViewcontroller
应用程序(iPhone和iPad),我已经创建了一个LoginViewController
和一个Button Action。
我的期望是点击该按钮后,控件将从LoginViewController
移至TabBarViewController
。在这个TabBarViewcontroller
我有5个Tabbar(项目)ViewControllers。
有可能吗?
如果可以,请分享您的想法。
答案 0 :(得分:7)
首先,在UINavigationController
中取UITabbarController
和MainWindow.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;
}