2016-05-04 14 views
1

に行くとき、私はアプリの負荷が、それは初期UIViewControllerを示し、self.view.windowプロパティがNULLないときUINavigationControllerに埋め込まUITabBarControllerを持ってNULLになります。UIWindowは、アプリがバックグラウンド

アプリをバックグラウンドモードにしてアプリアイコンをタップすると、アプリがアクティブになります。self.view.windowプロパティはNULLです。

は、私はその後、私は- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法とself.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];ようAppDelegate.mでそれを設定し

AppDelegate.h @property (nonatomic, strong) UIWindow *window;のプロパティ宣言を持っています。

次に、[self.window setRootViewController:launchViewController];[self.window makeKeyAndVisible];の方法があります。

これはなぜですか?

+0

はそれが弱い性質であるインターフェイスを階層に属していますか? – waheeda

+0

いいえ強いです。 – Matic1911

+0

didFinishLaunchingMethodにこれらのコード行があることを確認してください。 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.window.rootViewController = YourViewController; [self.window makeKeyAndVisible]; – waheeda

答えて

1

self.view.windowは、self.viewがフォアグラウンドにある場合にのみアクセスできます。プロパティとして

@property(nullable, nonatomic,readonly) UIWindow *window;

@interface UIView(UIViewHierarchy)

+0

私は '@property(nonatomic、strong)UIWindow * window;のようなプロパティを持っています'それで 'self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];' UIApplicationDidBecomeActiveNotification'ので、私はビューが前景にあると思う。 – Matic1911

+0

名前それ自体が好きです.window1たとえば – Rajesh

+0

それは動作しません。問題は、 'UITabBarController'の別のビューに行き、再び初期ビューに戻ったときにプロパティが正常に再現されることです。 – Matic1911

関連する問題