ボタンをタップした後に表示されるnavControllerを設定しました。しかし、私がボタンをタップすると、「Warning: Attempt to present <UINavigationController>: 0xab5d9d0 on <MyApp: 0xadaa320> whose view is not in the window hierarchy!
」ビューのウィンドウ階層に問題がありません
誰かがこれを解決する方法を知っていますか?私もStackoverflowで何かを試しましたが、私の解決策ではありませんでした。
ここnavigationcontrollerを開くための私のコード:
私は、誰かがこのフォトギャラリーを知っていれば知らないが、そうでない場合は、hereはプロジェクトです。
私のコード(MyApp.m):事前に
#import MyApp.h
...
//some stuff
- (void)launchGalleryView
{
MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self];
// Set browser options.
browser.wantsFullScreenLayout = YES;
browser.displayActionButton = NO;
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:browser];
NSMutableArray *photos = [[NSMutableArray alloc] init];
MWPhoto *photo;
photo = [MWPhoto photoWithFilePath:[[NSBundle mainBundle] pathForResource:@"callculator" ofType:@"jpg"]];
photo.caption = @"The calculator is soo beateful...";
[photos addObject:photo];
self.photos = photos;
[self presentModalViewController:navController animated:NO];
}
感謝。
編集:
それはrecourcesで、コンパイルのソースではなく、あなたはそれが(絵コンテ)赤であることが確認できたリソースです。これが原因だろうか?
第2コントローラ.H:
@class MyApp;
@interface Second : UIViewController <MWPhotoBrowserDelegate> {
}
@property (nonatomic, retain) MyApp* vC;
@end
Secnondコントローラ.M:
#import "Second.h"
#import "MyApp.h"
@interface Second()
@end
@implementation Second
@synthesize vC;
//some stuff in here
//the action
- (IBAction)dothis:(id)sender {
NSLog(@"launch the navcontroller");
[self.vC launchGalleryView];
}
MyApp.h:
#import "Second.h"
@interface myApp : UIViewController <MWPhotoBrowserDelegate> {
}
-(void)launchGalleryView;
NSArray *_photos;
NEW EDIT:
私はviewDidAppearで「launchGalleryView」メソッドを呼び出す必要がありますが、どのように私は毎回ビュー負荷をからNavControllerを呼び出さずにこれを行うことができますことを発見?誰もこれを行う方法を知っていますか?私はあなたのプロジェクトをチェックし
rを現時点で最上位ではないコントローラから削除します。が一番上にあり、何も提示していないことを確認してください! –
yuf
どうすればいいですか? – MasterRazer
[self dismissViewControllerAnimated:NO completion:nil]を呼び出すとどうなりますか?現在のModelViewControllerの前に?何が起こるのですか? – yuf