gpt4 book ai didi

iphone - shouldStartLoadwithRequest 没有在子类中被调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:20:36 26 4
gpt4 key购买 nike

我有一个 View 控制的应用程序。在我的 xib 上,我没有 webview,但我确实有按钮可以调出具有 webview 的类。所以点击第一个按钮,会弹出一个 uiwebview,依此类推。

现在,在我的一个类中,我打开了一个远程网页,上面有一个链接。我想用 shouldStartLoadwithrequest 覆盖那个按钮链接。这似乎从来没有被调用过。

现在我的类(class)名为 Tenth.m,我的 View Controller 中有这段代码

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {

NSLog(@" Test spot 1");
NSString* scheme = [[request URL] scheme];
if ([@"didTap" isEqual:scheme]) {
// Call your method
NSLog(@" Test spot 2");
[self didTapButton1];
return NO;
} else {
NSLog(@" Test spot 3");
return YES;
}}

但我什么也没得到(我的 NSLog 都没有)。我已经尝试将其放入我的 Tenth.m 类(class)中,但仍然一无所获。我查看了其他示例,甚至下载了一个示例,但它仅使用 viewcontroller 和委托(delegate)类。没有三等舱。

我不知道为什么它没有被调用。

这是我的第三堂课

#import "Tenth.h"


@implementation Tenth

- (void)awakeFromNib
{
[category10 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.mywebsite.com/api/didtap.php"]]];

}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}

- (void)dealloc
{
[super dealloc];
}

- (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
/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView
{
}
*/


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{

[super viewDidLoad];
}


- (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

远程页面代码

    <a href="didTap://button1">hello</a>

第十个.h文件

#import <UIKit/UIKit.h>


@interface Tenth : UIViewController <UIWebViewDelegate> {

IBOutlet UIWebView *category10;

}

-(IBAction)back;
@end

最佳答案

我的第一个猜测是 Web View 没有设置委托(delegate)。为了让它调用

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType

包含此方法的类需要设置为 webview 的委托(delegate)。所以在代码的某处应该有一行类似于 webView.delegate = <variable> ,其中变量是实现了 shouldStartLoadWithRequest: 的类的实例方法。

当 webView 是 viewController View 的 subview 时,这通常是“self”。但是你描述你的应用程序的方式,我不确定它是否是 self,但听起来它不是 self,而是另一个类的实例的名称。

关于iphone - shouldStartLoadwithRequest 没有在子类中被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7630291/

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