导航在目标 c 中不起作用

Posted

技术标签:

【中文标题】导航在目标 c 中不起作用【英文标题】:navigation not working in objective c 【发布时间】:2011-12-29 10:24:43 【问题描述】:

我创建了一个 iPad 应用程序,其中导航不起作用, 例如单击 tableView 的单元格,它应该导航到新视图。

相同的代码 sn-p:

appDelegate.m

-(void)applicationDidFinishLaunching:(UIApplication *)application     

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];   
[window addSubview:navController.view];
[window addSubview:viewController.view];
[window makeKeyAndVisible];

在此之后,我正在创建 UIViewControllerSubclass,crollnext

在这个文件中我正在执行一些操作,最后在我的 ma​​inViewController

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

    crollnext *crollController =[[crollnext alloc]initWithNibName:@"crollView" bundle:nil];

    [self.navigationController pushViewController:crollController animated:YES];
    [crollController changeProductText:[tableData objectAtIndex:indexPath.row]];


我的代码有错误吗?

这是截图

提前致谢

【问题讨论】:

【参考方案1】:
[window addSubview:navController.view];
[window addSubview:viewController.view];

请注意,在添加 navController.view 之后,您正在将 viewController.view 添加到窗口视图堆栈的顶部。你应该做的是这样的:

 UINavigationController navController=[[UINavigationController alloc] initWithRootViewController:viewController];
[window addSubview:navController.view];

navController,对于它本身来说什么都不是。你需要用一些东西来填充它(在这种情况下你的 viewController 作为 rootViewController。

【讨论】:

【参考方案2】:

删除这一行

[window addSubview:viewController.view];

【讨论】:

【参考方案3】:

首先,您的应用委托方法中的viewController 对象是什么。还有为什么要将viewController 的视图添加到window。您已将其添加为已添加到 windownavigationController 的根视图。所以你不需要将viewController的视图添加到window

【讨论】:

viewController 是我班级的对象【参考方案4】:
UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:viewController];
[self.window addSubview:navigationController.view];

【讨论】:

【参考方案5】:

不要将视图控制器中的视图作为子视图添加到窗口中。而是将窗口的 rootViewController 属性设置为您的导航控制器。

【讨论】:

以上是关于导航在目标 c 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 选择在目标 c 中不起作用

通知在 Presentviewcontroller 目标-c 中不起作用

PresentViewController 在目标 c 中不起作用。应用程序崩溃

if 语句比较在目标 c 中不起作用的整数

静态快速​​操作在目标 c iOS 中不起作用

animateWithDuration 在 vi​​ewWillAppear ios 9 目标 c 中不起作用