Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.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
Iphone 来自tableViewController子类的UINavigationController pushViewController_Iphone_Ios_Uinavigationcontroller_Subclass_Nib - Fatal编程技术网

Iphone 来自tableViewController子类的UINavigationController pushViewController

Iphone 来自tableViewController子类的UINavigationController pushViewController,iphone,ios,uinavigationcontroller,subclass,nib,Iphone,Ios,Uinavigationcontroller,Subclass,Nib,当我试图从uitableviewcontroller子类中推送某个视图控制器时,我看到一个奇怪的应用程序行为 让我先解释一下。我已经创建了主nib,它链接到navigationController内部的rootViewController(appDelegate)。在这种情况下,nib a添加了一个UITableView和一个自定义UITableViewController子类News\u TableViewController,如屏幕截图所示: 当我试图执行下面的代码时,我什么也得不到: M

当我试图从uitableviewcontroller子类中推送某个视图控制器时,我看到一个奇怪的应用程序行为

让我先解释一下。我已经创建了主nib,它链接到navigationController内部的rootViewController(appDelegate)。在这种情况下,nib a添加了一个
UITableView
和一个自定义
UITableViewController
子类
News\u TableViewController
,如屏幕截图所示:

当我试图执行下面的代码时,我什么也得不到:

My_WebView *webView = [[My_WebView alloc] initWithNibName:@"My_WebView" bundle:nil];
[self.navigationController pushViewController:webView animated:YES];
然后我检查了self.navigationController对象,但我给出了NULL:

NSLog(@"OBJ: %@",self.navigationController);
为什么尽管我的自定义类实际上位于navigationController下,但我没有获得对
navigationController
的引用


谢谢

正如您所提到的,News\u TableViewController是一个UITableViewController,因此是一个UIViewController。我想你没有初始化导航控制器!建议的方法是在appDelegate类的委托方法中初始化navigationController,如下所示:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
RootViewController *rootViewController = [[RootViewController alloc]init];
_navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}

其中RootViewController是News\u TableViewController类。

在TableViewController的哪个方法中推送webView?我在viewforfooterInstitution方法中使用了它。但它在其他地方也不起作用。NSLog(@“%@”,self.navigationController)始终返回NULL。我认为应该首先在TableViewController子类的viewDidLoad方法中放置断点或NSLog。它击中了吗?是的,除了导航控制器的部分外,一切都正常。我按照这个方法在另一个tableView中创建了类似脉冲的tableView。从rootViewController到这个自定义tableViewController的连接可能有问题。但在锡伯银行,我在哪里/如何实现这一点?我理解你的意思,但这里的情况并非如此。在appDelegate中,我是这样做的:navigationController=[[UINavigationController alloc]initWithRootViewController:self.viewController];其中self.viewController是带有xib的UIViewController。好的,在这个xib中,我定义了News_TableViewController,就像你们在我的问题的图片上看到的一样……我按照你们说的做了。删除了不需要的UIViewController,改为推送新闻。现在工作。但这真的很奇怪,没有按我的方式工作。很明显,我误解了某些东西。。。谢谢我认为这是appDelegate:initWithRootViewController:self.viewController中的错误。您应该已经初始化了News\u ViewController,然后使用rootviewcontroller:News\u ViewController编写了init,其余的命令保持不变。您提供的图像是News_TableViewController的xib,对吗?因此,您不需要拖放“新闻表视图控制器”。tableView委托可以处理这个问题