gpt4 book ai didi

ios - 每个 UIViewController 实例的不同 URI

转载 作者:可可西里 更新时间:2023-11-01 04:42:06 25 4
gpt4 key购买 nike

我有一个带有五个选项卡的 UITabController。每个选项卡只包含一个自定义 UIViewController 实例,每个实例包含一个 UIWebView。

我希望每个选项卡中的 UIWebView 打开不同的 URI,但我认为没有必要为每个选项卡创建一个新类。

如果我在 -(void)viewDidLoad 中执行 [self.webView loadRequest:] 就可以让它工作,但是用五个不同的类创建五个不同的类似乎很荒谬当我真正想要更改的只是 URI 时的 viewDidLoad 版本。

这是我尝试过的:

appDelegate.h

#import <UIKit/UIKit.h>

@interface elfAppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UITabBarController *tabBarController;

@end

appDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

customVC *start = [[customVC alloc] init];
customVC *eshop = [[customVC alloc] init];
customVC *table = [[customVC alloc] init];
customVC *video = [[customVC alloc] init];
customVC *other = [[customVC alloc] init];

// Doesn't do anything... I wish it would!
[start.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]]];

self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[start, eshop, table, video, other];

self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}

自定义VC.h

#import <UIKit/UIKit.h>

@interface customVC : UIViewController <UIWebViewDelegate> {
UIWebView* mWebView;
}

@property (nonatomic, retain) UIWebView* webView;

- (void)updateAddress:(NSURLRequest*)request;
- (void)loadAddress:(id)sender event:(UIEvent*)event;

@end

自定义VC.m

@interface elfVC ()

@end

@implementation elfVC

@synthesize webView = mWebView;

- (void)viewDidLoad {
[super viewDidLoad];

self.webView = [[UIWebView alloc] init];
[self.webView setFrame:CGRectMake(0, 0, 320, 480)];
self.webView.delegate = self;
self.webView.scalesPageToFit = YES;

[self.view addSubview:self.webView];

}

最佳答案

在您的 customVC 中创建类型为 NSURL* 的属性。

将您的 customVC 的 -(id)init 方法更改为 -(id)initWithURL:(NSURL*)url 如下:

-(id)initWithURL:(NSURL*)url{
self = [super init];
if(self){
self.<URLPropertyName> = url;
}
return self;
}

然后调用

[start.webView loadRequest:[NSURLRequest requestWithURL:self.<URLPropertyName>]];

viewDidLoad

然后当您初始化 customVC 的不同实例时,只需使用

customVC *vc = [customVC alloc]initWithURL:[NSURL URLWithString:@"http://..."]];

关于ios - 每个 UIViewController 实例的不同 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15524963/

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