Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用;“模式推送”;添加到viewController,但无法在顶部添加UINavigationItem-(控制器,栏)_Ios_Uiviewcontroller_Uinavigationcontroller_Uinavigationbar_Uinavigationitem - Fatal编程技术网

Ios 使用;“模式推送”;添加到viewController,但无法在顶部添加UINavigationItem-(控制器,栏)

Ios 使用;“模式推送”;添加到viewController,但无法在顶部添加UINavigationItem-(控制器,栏),ios,uiviewcontroller,uinavigationcontroller,uinavigationbar,uinavigationitem,Ios,Uiviewcontroller,Uinavigationcontroller,Uinavigationbar,Uinavigationitem,在我的项目中,我有一个1viewController,它是通过所有其他viewController的“模式推送”推送的。我正在尝试向其添加UINavigationItem(顶部的条形图),但它不起作用。我在项目的另一个地方有一个类似的viewController,据我所知,我用它做了完全相同的事情,并且能够将UINavigationItem添加到它 现在我需要帮助了解为什么我无法将UINavigationItem添加到我的viewController?我正在使用以下代码进行尝试: self.n

在我的项目中,我有一个1
viewController
,它是通过所有其他
viewController
的“模式推送”推送的。我正在尝试向其添加
UINavigationItem
(顶部的条形图),但它不起作用。我在项目的另一个地方有一个类似的viewController,据我所知,我用它做了完全相同的事情,并且能够将
UINavigationItem
添加到它

现在我需要帮助了解为什么我无法将
UINavigationItem
添加到我的viewController?我正在使用以下代码进行尝试:

 self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:self.nextButton,  self.menuButton, nil];
我没有收到任何错误或任何指示,说明为什么它不能在我的viewController上工作,只是什么都没有发生?以下是它的屏幕:


viewController既连接到选项卡栏又连接到UINavigationController,但这不重要,因为我决定用“模式”推动它?如果我使用正常的“推送”,将显示
UINavigationItem
,并将链接到应用程序的其余部分。但这就是问题所在,我希望它是一个单独的幻灯片,带有自己的
UINavigationBar
(项目、控制器)或任何你称之为它的东西。这里要解释的原因要复杂得多,只会让人厌烦。因此,让我们关注一下为什么在使用“模式推送””时,我无法在此viewController中添加
UINavigationItem
(条形图,控制器)??????如果你知道什么,请告诉我

实现这一点的一个简单方法:

UINavigationController *navigationController = [[UINavigationController alloc]initWithRootController:yourViewController];

[viewController presentModalViewController:navigationController animated:YES];

如果您使用的是故事板,则必须将导航控制器直接嵌入到显示的模态控制器(编辑器>嵌入>导航控制器)

您的故事板应如下所示:

FirstVC -> Navigation Controller -> SecondVC

我没有使用任何代码,我只是通过故事板使用“模态”推送。。。。我尝试过这段代码,但结果相同,没有发生任何事情:ShowTaskViewController*detailViewController=[[ShowTaskViewController alloc]init];UINavigationController*navController=[[UINavigationController alloc]initWithRootViewController:detailViewController];navController.modalTransitionStyle=UIModalTransitionStyleCross溶解;[self.navigationController presentModalViewController:navController动画:是完成:无];[导航控制器释放];[详细视图控制器发布];UIModalTransitionStyleCrossDissolve不是
modalTransitionStyle
的tpye。也许这与此有关。不,与此无关:/。我的项目看起来像这个选项卡BarController-->NavigationController-->FristViewController--(从情节提要模式推送)-->viewController(这是我无法启用UINavigationItem的控制器)。@user1293618,当FirstViewController嵌入到导航控制器中时,为什么要对viewController进行模式分段?只需将segue更改为“push”。说来话长,但我希望viewController同时允许横向/纵向模式,并将应用程序中的其余viewController锁定为仅纵向模式。因为我的TabBarController是我应用程序中的初始控制器,所以所有内容都将从它继承。因此,为了启用所有这些功能,我的最佳选择是进行模式推送,这样它就不会从我的TabBarController/NavigationController继承。我的项目现在看起来是这样的:TabBarController-->NavigationController-->FristViewController--(来自故事板的模式推送)-->SecondViewController(这是无法启用UINavigationItem的控制器)。对我来说,在FristVC和SecondVC之间添加另一个导航控制器将是一项相当大的工作。你真的认为这与此有关吗?:SYe别担心,在使用情节提要时,这是一种正常的情况。将导航控制器嵌入SecondVC与通过执行UINavigat以编程方式完全相同ionController*navController=[[UINavigationController alloc]initWithRootController:secondVC];然后以模态方式呈现导航控制器没有“模态推送”这回事。一个按钮序列仅由导航控制器使用,任何控制器都可以以模式显示另一个。如果您尝试将导航按钮添加到的控制器未嵌入导航控制器中,则self.navigationItem将为零。