gpt4 book ai didi

html - 选择表格中的一行时,它会切换到空白屏幕

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:59 27 4
gpt4 key购买 nike

在我的应用程序( Storyboard)的一部分中,我有一个包含多行的表格 View ,当我选择一行时,应该显示一个 html 文件。相反,当我选择一行时,我得到一个空白屏幕。

我原以为在 tableview controller 之后我还需要另一个 view controller,但不管有没有,我都会遇到同样的问题。

在我的表 Controller .m 文件中,我有以下代码:

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

{

articleIndex = indexPath.row;

WebView *selectedArticle = [[WebView alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:selectedArticle animated:YES];
[selectedArticle release];

这允许我选择一行并且屏幕变为空白,而不是加载相关的 html 文件。

我的资源文件夹中有一个 .h 和 .m 文件,如下所示:

WebView .h

#import <UIKit/UIKit.h>
#import "globals.h"
@interface WebView : UIViewController{
NSArray *articleNames;
IBOutlet UIWebView *webView;
}
@property(nonatomic, retain)IBOutlet UIWebView *webView;
@end

WebView .m

#import "WebView.h"
@implementation WebView
@synthesize webView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}

- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
[super viewDidLoad];

articleNames = [[NSArray arrayWithObjects:
@"chapter1",
@"chapter2",
@"chapter3",
@"chapter4",
@"chapter5",
@"chapter6",
nil] retain];

NSString *chapterName = [[NSString alloc] initWithString:[articleNames objectAtIndex:articleIndex]];

NSString *path = [[NSBundle mainBundle] pathForResource:chapterName ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:path];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
[webView loadRequest:urlRequest];

[chapterName release];

}

- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return YES;
}

@end

我看不出我在这里做错了什么,有什么建议吗?我不确定如何让 html 文件显示或我需要在哪里进行更改以允许它。如果我从项目中删除 HTML 文件,应用程序会崩溃,所以它肯定正在加载它们,但由于某种原因没有显示...

最佳答案

首先,“articleIndex”在哪里?我看到您在 tableViewController 中设置了它,但它不是 webView.h 或 webView.m。我建议首先添加一个 NSLog

NSURL *url = [NSURL fileURLWithPath:path];
NSLog(@"Article URL:%@", url);

这会让你先看看网址是否正确。其次,您似乎已将 UIWebView 与界面生成器连接起来,因此请确保 webView 已正确连接。您还可以使用以下方法测试 webView 购买:

    NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString: @"http://www.apple.com"]];

然后查看 apple.com 是否加载。如果是,那么您就知道您的问题出在您的 html 文件或它们的路径上。

关于html - 选择表格中的一行时,它会切换到空白屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9050304/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com