我有以下代码:
- (IBAction)buttonPressed:(UIButton *)sender
{
//sentder.titleLabel
NSString *label = [(UIButton *)sender currentTitle];
if ([label isEqualToString:@"Register"])
{
[sender setTitle:@"Registers" forState:UIControlStateNormal];
RegisterViewController *viewCon = [[RegisterViewController alloc] init];
RegisterNavigationController *navigation = [[RegisterNavigationController alloc] init];
[navigation pushViewController:viewCon animated:YES];
//self performSegueWithIdentifier:@"MySequeIdentifier" sender:];
}
....
我有一个startController,其中包含以下正确调用的按钮代码。我创建了一个全新的默认registerViewController(UIViewController)和一个registerNavigationContoller(UINavigationController类)。如何获得我的按钮单击动画以创建registerViewController并使该视图控制器具有带有后退按钮的栏?
我做错了吗,startViewController是否应该是UINavigationController,因为它只是UIViewController?如果是这样,我如何摆脱此页面上的顶部栏?
您现有的View Controller(包含此按钮代码的View Controller)需要包含在Navigation Controller中。新的VC也将包含在同一导航控制器中。导航控制器管理这两个子视图控制器之间的标题栏和后退按钮导航。
要将第一个VC嵌入到Nav Controller中:
如果使用情节提要,则可以选择视图控制器场景,然后在菜单中: Editor > Embed In > Navigation Controller
如果在代码中实例化,则首先初始化View Controller,然后将其嵌入到新的nav控制器中,从而:
UIViewController firstVC;
firstVC = [[UIViewController alloc] initWithNib:@"nibname" bundle:nil]]
//(example of initialising with a xib/nib file)
UINavigationCOntroller navCon;
navCon = [UINavigationController alloc] initWithRootViewController:firstVC];
navController
现在,从您的按钮代码中,请您的父级导航控制器来管理过渡:
RegisterViewController *viewCon = [[RegisterViewController alloc] init];
//take care to initialise correctly
//do you have a nib file? a storyboard scene?
[self.navigationController pushViewController:viewCon animated:YES];
或者,您可以在按钮和第二个情节提要场景之间创建情节提要幻灯片推导功能-它执行与此代码相同的功能。
如果只希望在第二个VC中使用导航栏,而在第一个VC中则不需要,则可以有多种选择。
使用每个视图控制器,您都可以分别控制导航控制器的BOOL属性navigationBarHidden
-例如self.navigationController.navigationBarHidden = YES
;
但是您可能会发现导航栏状态之间的视觉过渡不尽人意,并且可能要考虑其他应用程序设计。例如,您可以从第一个显示第二个视图控制器。在这种情况下,两个vc都不需要导航控制器(第二个vc可以包含它自己的UINavigationBar)。或者提供的视图控制器仍可以嵌入其自己的导航控制器中。无论哪种方式,您都不会在第一个视图控制器上获得自动后退按钮,而是需要自己实现(仅当一个导航控制器正在管理一系列子视图控制器时才提供后退按钮)。
这些只是一些建议,您将必须结合这些以及其他一些想法来找出最适合您的应用程序的想法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句