我想在PresentViewController
上Push
我的视图控制器
当我最初单击按钮时,我正在加载PresentViewController
,这是我的代码。
- (IBAction)JoinClicked:(id)sender{
JoinWithViewController *detail_view_controller = [[JoinWithViewController alloc] initWithNibName:@"JoinWithViewController" bundle:nil];
[self.view.window.rootViewController presentViewController:detail_view_controller
animated:YES
completion:NULL];
}
这工作正常,但是当我单击PresentViewController
单击时存在的按钮时,我想推送我的视图,但不推送。
请帮忙,提前谢谢。
JoinWithViewController *detail_view_controller = [[JoinWithViewController alloc] initWithNibName:@"JoinWithViewController" bundle:nil];
[self.navigationController pushViewController:detail_view_controller animated:YES];
尝试像这样推送视图控制器。如果您使用 TabBar 在 AppDelegate 中执行此操作。如果您创建选项卡栏拖放意味着离开它。以编程方式创建选项卡栏,如下所示。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
UITabBarController *tabController = [[UITabBarController alloc]init];
self.viewController = [[CalculatorViewController alloc] initWithNibName:@"CalculatorViewController" bundle:nil];
UITabBarItem *tab_item1 = [[UITabBarItem alloc]init];
//tab_item1.title = @"Calculator";
tab_item1.image = [UIImage imageNamed:@"Calculator.png"];
[self.viewController setTabBarItem:tab_item1];
UINavigationController *nav1 = [[UINavigationController alloc]initWithRootViewController:self.viewController];
ShowPhoneViewController *phone = [[ShowPhoneViewController alloc]init];
UITabBarItem *tab_item2 = [[UITabBarItem alloc]init];
tab_item2.title = @"Latest Mobiles";
tab_item2.image = [UIImage imageNamed:@"Mobile.png"];
[phone setTabBarItem:tab_item2];
UINavigationController *nav2 = [[UINavigationController alloc]initWithRootViewController:phone];
CurrencyConvertorViewController *currency = [[CurrencyConvertorViewController alloc]init];
UITabBarItem *tab_item3 = [[UITabBarItem alloc]init];
tab_item3.title = @"Units Convertor";
tab_item3.image = [UIImage imageNamed:@"Dollar.png"];
[currency setTabBarItem:tab_item3];
UINavigationController *nav3 = [[UINavigationController alloc]initWithRootViewController:currency];
SettingsPageViewController *setting = [[SettingsPageViewController alloc]init];
UITabBarItem *tab_item4 = [[UITabBarItem alloc]init];
tab_item4.title = @"Settings";
tab_item4.image = [UIImage imageNamed:@"Settings.png"];
[setting setTabBarItem:tab_item4];
UINavigationController *nav4 = [[UINavigationController alloc]initWithRootViewController:setting];
tabController.viewControllers = [NSArray arrayWithObjects:nav1, nav2, nav3, nav4, nil];
self.window.rootViewController = tabController;
[self.window makeKeyAndVisible];
return YES;
}
我希望你现在得到
pushviewcontroller 是 UINavigationController 的功能,您可以在其中将一个视图控制器推送到另一个 vierw 控制器上。在这里,您使用单个视图控制器作为rootviewcontroller,因此您必须将rootviewcontroller更改为UINavigationcontroller,或者您可以使用"addSubview方法"在当前视图控制器上添加新的viewController。
但更好的选择是将UInavigationController添加为rootViewController。
AppDelegate.m
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
FirstViewController *first = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil]; UINavigationController *navController =[[UINavigationController alloc] initWithRootViewController:first]; [self.window setRootViewController:navController];
}
现在,当您想在单击按钮时从第一视图控制器切换到第二视图控制器时,您必须使用推送视图控制器
FirstViewController.h
-(void) nextBtnPressed { SecondViewController *second = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; [self.navigationController pushViewController:second animated:TRUE]; }