2

モーダルビューコントローラ(第2)からモーダルビューコントローラ(第1)をロードしようとしています。それは複雑に聞こえるが、おそらくそうではない。モーダルUIViewControllerが表示されません

第一コントローラは、実際に.mファイルのloadViewメソッドで初期化されるのUIWebViewである:

- (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]; 
    } 

ザ・第2回モーダルビューコントローラ(landscapeCoverControllerを意図しました)はIBで設定したNIBで初期化されます。

私の意図する目的は、「LandscapeCoverController」ビューでUIWebViewを条件付きで隠蔽することです。このビューには、2つ目のモーダルビューが表示されなくなるいくつかのボタンと対話性があります。

なぜ私のlandscapeCoverControllerがロードされていませんか?どのような考えが大いに感謝!

また...第一モーダルビューコントローラ(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 

と...第二モーダルビューコントローラ(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]; 

ステートメントは初期化とloを処理する必要がありますコントローラの作成...

+0

'mainScreen'はあなたのアプリのビューですか? –

+0

@sudo rm -rf(nice name)mainScreenは、画面の境界を表すUIScreenオブジェクトを返すUIScreenのクラスメソッドです。 – Jumhyn

答えて

1

landscapeCoverControllerをLandscapeViewControllerのインスタンスとして宣言し、UIViewControllerとして割り当てます。これはおそらくあなたの問題です(おそらく、最初のものは、LandscapeViewControllerに固有のメソッドを呼び出さないためです)。また、landscapeCoverControllerはインスタンス変数であるため、presentModalViewControllerの後に解放する必要はありません。もっと異なるクラス名を選んでみてください。これは、将来このような混乱からあなたを救うでしょう。

+0

それをキャッチするためにありがとう!うん、タイプをLandscapeViewControllerからLandscapeCoverControllerに変更しました。それでも、CoverControllerのビューが表示されない... LandscapeView(myWebView)は完全に表示されます。CoverControllerのNIBビューで覆われているはずです... – Sly

+1

landscapeCoverController = [[UIViewController ...]をlandscapeCoverControllerに変更しましたか? = [[LandscapeCoverController ...]?そして、あなたがIBセットのビューアウトレットを持っていることを確認してください。 – Jumhyn

+0

私はこれらの変更を行ったが、landscapeCoverControllerビューをまだ見ていないことを確認しました。 – Sly

関連する問題