我们如何在不将 ViewController 对象推入其中的情况下将对象分配给 `UINavigationController`。

Posted

技术标签:

【中文标题】我们如何在不将 ViewController 对象推入其中的情况下将对象分配给 `UINavigationController`。【英文标题】:How do we assign object into `UINavigationController` without pushing a ViewController object into it.? 【发布时间】:2014-11-28 04:59:30 【问题描述】:

我们如何在不将ViewController 对象推入其中的情况下将对象分配给UINavigationController。 为什么我需要它在这里:

我共有三个Segment views,其中一个是我添加为subView 的部分:

-(void)Frds
    [self clearSubView];
    obj = [[Frds alloc]initWithNibName:@"Frds" bundle:nil];
    [obj.view setFrame:CGRectMake(0, 65, 320, 568)];
    [self.view addSubview:obj.view];

当我访问 self.navigationController 时,来自 Frds 类。它返回给我nil,显然应该是因为我没有将ViewController 推入其中。

那么,在将“Frds”类对象视图添加为转发类的“子视图”之后,在Frds 类中访问navigationController 的方法是什么。

【问题讨论】:

为什么不在实例化之后设置 obj.navigationController? 因为我必须将它作为子视图添加到我的初始视图中。使用自定义 Y,有时也自定义宽度和高度。 当前视图控制器(上面代码中的“self”)是否包含在导航控制器中? 所以,在你初始化obj之后,只需执行obj.navigationController=self.navigationController; dude navigationController 是只读属性。你不能分配它。 【参考方案1】:

您可以在 rootviewController 视图对象上添加您的 frnd 视图对象。首先在您的导航控制器上分配一个 rootviewcontroller,然后您可以轻松地在其上添加您的视图。

用于在导航控制器上分配根视图控制器:

UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:detailViewController];

使用这个方法找到你的根视图控制器:

UIViewController *rootViewController = self.navigationController.viewControllers[0];

【讨论】:

rootViewController 将返回您的基本视图控制器:现在您可以在其上添加您的朋友视图,例如:[rootViewController.view addSubview frnd]

以上是关于我们如何在不将 ViewController 对象推入其中的情况下将对象分配给 `UINavigationController`。的主要内容,如果未能解决你的问题,请参考以下文章

如何在不将 LocalDateTime 字段转换为扩展的 json 对象的情况下将 java 对象转换为简单的 json 字符串?

如何在不将字体转换为轮廓的情况下将 cairo-pdf 转换为 eps

如何在不将密码保存在数据库中的情况下验证用户身份

有没有办法在不将 dtype 更改为对象的情况下将 NaT 附加到带有时区的 pandas 日期时间?

如何在不将文件写入光盘的情况下创建文件并压缩它们?

如何在不将鉴别器传递给构造函数的情况下映射 Enumeration 类?