gpt4 book ai didi

iphone - 模态 UIViewController 不出现

转载 作者:行者123 更新时间:2023-12-03 21:21:14 24 4
gpt4 key购买 nike

我正在尝试从模态视图 Controller (第二个)加载模态视图 Controller (第一个)。虽然听起来很复杂,但事实可能并非如此。

第一个 Controller 实际上是一个 UIWebView,它在 .m 文件的 loadView 方法中初始化:

- (void)loadView {

// Initialize webview and add as a subview to LandscapeController's view
myWebView = [[[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
//CGRect forceframe = CGRectMake(0, 0, 480, 320);
//myWebView = [[[UIWebView alloc] initWithFrame:forceframe] autorelease];
myWebView.scalesPageToFit = YES;
myWebView.autoresizesSubviews = YES;
myWebView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
myWebView.delegate = self;
self.view = myWebView;
}

然后在viewDidLoad中:

- (void)viewDidLoad {
[super viewDidLoad];

// Load HTML file as an NSURL request
[self.myWebView loadHTMLString:updated_html baseURL:nil];

// Invoke the covering modal view on condition
if (some_condition) {
landscapeCoverController = [[UIViewController alloc] initWithNibName:@"LandscapeCoverController" bundle:[NSBundle mainBundle]];

[self presentModalViewController:landscapeCoverController animated:YES];
[landscapeCoverController release];
}

预期的第二个模态视图 Controller (landscapeCoverController)使用我在 IB 中设置的 NIB 进行初始化。

我的预期目标是有条件地使用“LandscapeCoverController” View 覆盖 UIWebView,该 View 将具有一些按钮和交互性,这将导致第二个模态视图被关闭。

为什么我的 LandscapeCoverController 没有加载?任何想法都非常感激!

另外...第一个模态视图 Controller (LandscapeViewController) .h 看起来像:

@class LandscapeCoverController;

@interface LandscapeViewController : UIViewController <UIWebViewDelegate> {
UIWebView *myWebView;

LandscapeViewController *landscapeCoverController;
}

@property (nonatomic, retain) UIWebView *myWebView;

@property (nonatomic, retain) LandscapeViewController *landscapeCoverController; // Modal view controller

并且...第二个模态视图 Controller (landscapeCoverController) viewDidLoad 不执行任何操作:

// NIB initialized in LandscapeViewController.m viewDidLoad:
- (void)viewDidLoad {
[super viewDidLoad];

}

正如我所想

landscapeCoverController = [[UIViewController alloc] initWithNibName:@"LandscapeCoverController" bundle:[NSBundle mainBundle]];
[self presentModalViewController:landscapeCoverController animated:YES];
[landscapeCoverController release];

语句应该处理 Controller 的初始化和加载...

最佳答案

您将 LandscapeCoverController 声明为 LandscapeViewController 的实例,并将其分配为 UIViewController。这很可能是您的问题(可能是第一个问题,因为您没有调用特定于 LandscapeViewController 的任何方法)。另外,由于 LandscapeCoverController 是一个实例变量,因此您实际上不需要在 presentModalViewController 之后释放它。尝试选择更多不同的类名。它将使您在以后避免类似的困惑。

关于iphone - 模态 UIViewController 不出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4420531/

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