Ios Can';无法从导航控制器下的视图控制器查看内容
这个问题以前也提过,但公认的解决方案似乎不能解决我的问题,这就是为什么我希望另一双眼睛能看到我做错了什么。我试图为iPhone应用程序提供第二个导航控制器,其中背景为深色半透明,因此用户可以看到先前视图控制器的内容。代码如下:Ios Can';无法从导航控制器下的视图控制器查看内容,ios,objective-c,iphone,uinavigationcontroller,uimodalpresentationstyle,Ios,Objective C,Iphone,Uinavigationcontroller,Uimodalpresentationstyle,这个问题以前也提过,但公认的解决方案似乎不能解决我的问题,这就是为什么我希望另一双眼睛能看到我做错了什么。我试图为iPhone应用程序提供第二个导航控制器,其中背景为深色半透明,因此用户可以看到先前视图控制器的内容。代码如下: -(void)viewDidLoad { [super viewDidLoad]; RootViewController *rvc = [[UIStoryboard storyboardWithName:@"RootView" bundle:nil] in
-(void)viewDidLoad
{
[super viewDidLoad];
RootViewController *rvc = [[UIStoryboard storyboardWithName:@"RootView" bundle:nil] instantiateViewControllerWithIdentifier:@"RootViewRVC"];
self.nvc = [[UINavigationController alloc] initWithRootViewController:rvc];
self.nvc.modalPresentationStyle = UIModalPresentationOverCurrentContext;
[self presentViewController:self.nvc animated:YES completion:nil];
}
上述代码产生以下结果:
该应用程序目前正在为导航控制器和rootviewcontroller使用故事板,并显示我试图实现的目标:
TableViewController是与两个图像中的rootviewcontroller(代码使用相同的情节提要)关联的属性。从导航控制器情节提要中,Xcode 8中的属性检查器将“Presentation”设置为“Over Current Context”(同时“Over Full Screen”也起作用),这似乎可以做到这一点,但我更喜欢通过编程实现,因此请不要使用情节提要解决方案。这可能会起作用:
-(void)viewDidLoad
{
[super viewDidLoad];
RootViewController *rvc = [[UIStoryboard storyboardWithName:@"RootView" bundle:nil] instantiateViewControllerWithIdentifier:@"RootViewRVC"];
rvc.modalPresentationStyle = UIModalPresentationOverCurrentContext;
self.nvc = [[UINavigationController alloc] initWithRootViewController:rvc];
[self.nvc.view setBackgroundColor:[UIColor colorWithRed:1.0 green:0 blue:0 alpha:0.5]];
[self presentViewController:self.nvc animated:YES completion:nil];
}
是的,我也看到了这个问题,但由于某种原因,接受的解决方案对我不起作用。将definesPresentationContext设置为YES。Rajesh-您发送的链接还在将
modalPresentationStyle
设置为OverCurrentContext
,这是我在按下导航控制器之前正在执行的操作。尝试设置definePresentationContext,但它所做的只是将第二个导航控制器的导航栏移到原始控制器下方;无法解决我无法解决的透明问题。请尝试下面的问题。UIColor*颜色=。。。;颜色=[颜色与字母成分:0.5f];[self.nvc.view setBackgroundColor:color];