我们如何在不将 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