在 Objective-C 中为目前的 2 UIViewController 创建一个 UINavigationController
Posted
技术标签:
【中文标题】在 Objective-C 中为目前的 2 UIViewController 创建一个 UINavigationController【英文标题】:Create a UINavigationController For present 2 UIViewController in Objective-C 【发布时间】:2017-07-17 11:10:43 【问题描述】:我有 2 个UIViewController
s 并希望在其上有 UINavigationController 和 UINavigationBar 和 UINavigationItem。但是我的代码不起作用..
这是我的代码:
#import "testView1.h"
#import "testView2.h"
@interface testView1 ()
@end
@implementation testView1
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor darkGrayColor];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self];
testView2 *detail = [testView2 new];
[navController pushViewController:detail animated:YES];
【问题讨论】:
你在用故事板吗? 实际上你在这里所做的只是分配并初始化一个导航控制器,它带有一个已经存在于窗口中的 rootview 控制器。这一步不应该在 AppDelegate 中,以获得正确的结果 @Subramanian 不,我只是在情节提要中创建 UIViewController 并将其类设置为 testView1 @K.R.SaravanaKumar 是的,谢谢。但是怎么办呢? @SaMiGiMiX 你在用 Storyboard 吗? 【参考方案1】:尝试在故事板中嵌入导航控制器,如下所示:
首先在情节提要中选择您的testView1
。
选择导航控制器
及变化如下
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view.
/// testView2 *detail = [testView2 new];
testView2 *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"testView2 Identifier"]; // if you have add controller in storyboard
[self.navigationController pushViewController:detail animated:YES];
【讨论】:
@SaMiGiMiX 欢迎您,很高兴为您提供帮助。 tnx.但我无法将 navigationBar 添加到导航控制器 您不需要手动添加。导航控制器自动为你添加导航栏。【参考方案2】:您不会看到第一个视图控制器,因为您已经将第二个视图控制器推送到导航控制器上。
【讨论】:
不,我的第一个 ViewController 颜色是 darkGray,运行后我的屏幕是 darkGray ..以上是关于在 Objective-C 中为目前的 2 UIViewController 创建一个 UINavigationController的主要内容,如果未能解决你的问题,请参考以下文章
如何在 CollectionViewController 中为 gif 设置动画.. (Objective-C)
在 Objective-C 中为 AVAudioEngine 设置录制格式
在 Objective-C iOS 5 中为 Retina Display 以编程方式更改资源
如何在 Objective-C 中从 mysql 数据库中填充 NSArray?