2013-04-25 39 views
4

我整合Pushwoosh SDK推送通知,這是使用UIWindow表示從Pushwoosh門戶開關兩者之間的UIWindow的

- (void) showWebView { 
    self.richPushWindow.alpha = 0.0f; 
    self.richPushWindow.windowLevel = UIWindowLevelStatusBar + 1.0f; 
    self.richPushWindow.hidden = NO; 
    self.richPushWindow.transform = CGAffineTransformMakeScale(0.01, 0.01); 

    [UIView animateWithDuration:0.3 animations:^{ 
     self.richPushWindow.transform = CGAffineTransformIdentity; 
     self.richPushWindow.alpha = 1.0f; 
    } completion:^(BOOL finished) { 
    }]; 

} 

- (void) showPushPage:(NSString *)pageId { 
    NSString *url = [NSString stringWithFormat:kServiceHtmlContentFormatUrl, pageId]; 
    HtmlWebViewController *vc = [[HtmlWebViewController alloc] initWithURLString:url]; 
    vc.delegate = self; 
    vc.supportedOrientations = supportedOrientations; 

    self.richPushWindow.rootViewController = vc; 
    [vc view]; 
} 

而且在關閉HTML頁面上發送的HTML頁面調用

self.richPushWindow.transform = CGAffineTransformIdentity; 
[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ 
    self.richPushWindow.transform = CGAffineTransformMakeScale(0.01, 0.01); 
    self.richPushWindow.alpha = 0.0f; 


} completion:^(BOOL finished) { 
    AppDelegate * appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; 

    self.richPushWindow.hidden = YES; 


}]; 

現在我想在關閉這個HTML頁面時調用我的視圖控制器。所以我試圖在這個區塊完成但不出示myviewcotrlller

其實這裏的問題是,我的應用程序中有兩個UIWindows其中一個應用程序和其他sdk使用。現在,如果我嘗試從這個HTML頁面呈現視圖控制器,這是在單獨的UIWindow,所以它創建一個單獨的層次結構,當我關閉這個窗口也由於父 - 子關係刪除我提交的viewconroller。如果不關閉這個窗口,那麼如何回到實際的應用程序流程。

我希望新控制器應該從新窗口出現,之後窗口應該關閉,應用程序的流程不應該受到額外窗口的影響。可能嗎?如果我的觀念是錯誤的,請幫助,如果任何人有想法

編輯:秒的UIWindow永遠是關鍵的窗口,它只是通過設置較高的windowlevel,成爲隱藏

回答

1

的問題是變成可見的是正確的這個完成後塊richPushWindow將消失,這意味着您正試圖在隱藏窗口上呈現視圖控制器。

解決方案非常簡單。使用主窗口呈現視圖控制器。一些僞代碼:從ViewContoller

添加視圖到主窗口子視圖:

  1. [appDelegate.window addSubview:myViewController.view];

模態:

  1. [appDelegate.window.rootViewController presentModalViewController:myViewController]

使用視圖控制器層次:

  1. 推你的viewController到主的viewController堆棧。例如,如果你有navigationController,只需將它推到那裏。

我希望它有幫助!

+0

感謝您的回答,爲我工作得很好 – Archive 2013-04-30 11:39:23