Arc*_*ive 5 uiwindow push-notification ios
我正在整合Pushwoosh SDK for Push Notification,它UIWindow用于表示从Pushwoosh门户发送的HTML页面
- (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];
}
Run Code Online (Sandbox Code Playgroud)
在关闭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;
}];
Run Code Online (Sandbox Code Playgroud)
现在我想在关闭这个HTML页面时调用我的视图控制器.所以我试图myviewcotrlller在这个区块完成但没有呈现.
实际上这里的问题是我的应用程序中有两个UIWindows是app和sdk使用的其中一个.现在,如果我尝试从单独的UIWindow上的这个html页面呈现视图控制器,那么它会创建一个单独的层次结构,当我关闭此窗口时,由于父子关系也会删除我呈现的viewconroller.如果不关闭此窗口,那么如何回到app的实际流程.
我希望新控制器应该从该新窗口显示,并且该窗口应该关闭,应用程序流不应受其他窗口的影响.可能吗?如果我的想法是错误的,请帮助,如果有人有想法
编辑:第二个uiwindow永远不是关键窗口,它只有通过设置更高的窗口级别变得可见并变得隐藏
小智 1
问题是,在此完成块之后 richPushWindow 将消失,实际上这意味着您正在尝试在隐藏窗口上呈现视图控制器。
解决方案非常简单。使用主窗口来呈现视图控制器。一些伪代码:
将 ViewContoller 中的视图添加到主窗口子视图:
模态:
使用视图控制器层次结构:
我希望它有帮助!
| 归档时间: |
|
| 查看次数: |
2268 次 |
| 最近记录: |