J'essaie de charger un Contrôleur Modal View (1er) depuis un Modal View Controller (2nd). Bien que cela semble compliqué, ce n'est probablement pas le cas.Modal UIViewController n'apparaît pas
Le 1er contrôleur est en fait un UIWebView qui est initialisé dans la méthode loadview du fichier .m:
- (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;
}
Puis, en 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];
}
Le destiné 2e contrôleur Modal View (landscapeCoverController) est initialisé avec un NIB que j'ai mis en place dans IB.
Mon objectif est de masquer conditionnellement l'UIWebView avec la vue "LandscapeCoverController", qui aura des boutons et une interactivité qui entraînera le rejet de la 2ème vue modale.
Pourquoi mon paysageCoverController ne se charge-t-il pas? Toutes les pensées grandement appréciées!
aussi ... le 1er Modal View Controller (LandscapeViewController) .h ressemble:
@class LandscapeCoverController;
@interface LandscapeViewController : UIViewController <UIWebViewDelegate> {
UIWebView *myWebView;
LandscapeViewController *landscapeCoverController;
}
@property (nonatomic, retain) UIWebView *myWebView;
@property (nonatomic, retain) LandscapeViewController *landscapeCoverController; // Modal view controller
et ... le 2ème Modal View Controller (landscapeCoverController) viewDidLoad ne fait rien:
// NIB initialized in LandscapeViewController.m viewDidLoad:
- (void)viewDidLoad {
[super viewDidLoad];
}
que je pense que la déclaration
landscapeCoverController = [[UIViewController alloc] initWithNibName:@"LandscapeCoverController" bundle:[NSBundle mainBundle]];
[self presentModalViewController:landscapeCoverController animated:YES];
[landscapeCoverController release];
doit gérer l'initialisation et lo ading du contrôleur ...
Est-ce que 'mainScreen' a une vue dans votre application? –
@sudo rm -rf (joli nom) mainScreen est une méthode de classe de UIScreen qui renvoie un objet UIScreen représentant les limites de l'écran. – Jumhyn