Ios 将UIViewController上的UINavigation控制器设置为rootView
我有一个tabBarApplication作为模板,每个选项卡上都有一个UINavigation模板 我想使用该示例(某种程度上)并将其转换为另一个应用程序中的单个UIViewController。我已经介绍了两段代码,第一段是我的模板,第二段是我正在尝试制作的。有谁能给我一些提示或帮助我如何做到这一点吗?我不断地遇到错误,但它们对我来说毫无意义,因为tabBarApp不需要viewController声明它 第一个代码(示例): 第二个代码(我正在尝试制作): 代码的获取部分与已经设置并运行的核心数据相关。 进行此更改的原因是,我希望将普通视图控制器设置为初始屏幕,而不是Tabbar配置 干杯,杰夫Ios 将UIViewController上的UINavigation控制器设置为rootView,ios,uiviewcontroller,uitabbarcontroller,Ios,Uiviewcontroller,Uitabbarcontroller,我有一个tabBarApplication作为模板,每个选项卡上都有一个UINavigation模板 我想使用该示例(某种程度上)并将其转换为另一个应用程序中的单个UIViewController。我已经介绍了两段代码,第一段是我的模板,第二段是我正在尝试制作的。有谁能给我一些提示或帮助我如何做到这一点吗?我不断地遇到错误,但它们对我来说毫无意义,因为tabBarApp不需要viewController声明它 第一个代码(示例): 第二个代码(我正在尝试制作): 代码的获取部分与已经设置并运行的
编辑:为了清晰起见,我添加了一个图像
根据您在图像中的描述,您将导航控制器设置为应用程序的根视图控制器。因此,您可以在应用程序代理的
didFinishLaunchingWithOptions:
方法中访问它(如果需要),如下所示:
UINavigationController *navController = (UINavigationController *)self.window.rootViewController;
尽管对于您的应用程序,我认为您没有任何理由需要从应用程序代表处引用导航控制器。您需要的所有设置(代码数据代码除外,您说它已经在工作)都可以通过故事板处理
在nagivationController的根viewController(包含所有按钮的那一个)中,您应该设置一个从每个按钮到情节提要中相应viewController的序列。B一定要设置为“推送”分段,以便将视图控制器推送到navigationController的导航堆栈上。如果在segue发生时需要为子视图控制器执行任何特定设置,则可以实现prepareforsgue:
方法,如下所示:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"ShowMyViewController"]) {
MyViewController *vc = (MyViewController*)segue.destinationViewController;
vc.title = @"My Title";
vc.someProperty = @"Some Value";
}
}
您可以(也应该)使用唯一标识符标识故事板中的每个片段,以便在调用此方法时可以标识它们。我不清楚新导航将如何工作。您的初始视图控制器是导航控制器吗?是的,我使用的是故事板,我在UINavigation控制器中嵌入了一个ViewController。您的嵌入式ViewController中有什么?你将如何导航到应用程序的其他部分?因此,我有一个普通的UIViewController,上面有几个按钮,我将该视图嵌入到UINavigation控制器中,然后我有一个UITableView,UIViewController通过一个按钮连接到该UITableView。我为Clarithi jonkroll添加了一个图像,谢谢你的回答——当我回到家时,我会再次尝试并发布我的发现:-)干杯
UINavigationController *navController = (UINavigationController *)self.window.rootViewController;
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"ShowMyViewController"]) {
MyViewController *vc = (MyViewController*)segue.destinationViewController;
vc.title = @"My Title";
vc.someProperty = @"Some Value";
}
}