Sam*_*ley 5 iphone ios slcomposeviewcontroller
我的应用程序中有一个按钮,可SLComposeViewController用于推特.当视图显示时,它会正确动画并消失.我发现它消失后会被发送到当前视图的后面,我无法将其恢复.我试过在代码中手动将所有视图发送到后面而没有运气.我觉得我的应用程序出现了根本性的错误,因为这种行为可以在任何级别上看到应用程序中的导航控制器.下面是SLComposeViewController应用程序中导航栏的截图,我让ViewController的视图有一个Alpha值0.0f来说明我的观点:

我真的不知道这里发生了什么,任何帮助将不胜感激.我用来呈现的代码SLComposeViewController是非常标准的,我已经在另一个应用程序中测试它并且工作正常:
NSString *message = [NSString stringWithFormat:@"#%@", [twitterInfo objectForKey:@"hashtag"]];
if ([appDelegate isSocialAvailable]) {
// code to tweet with SLComposeViewController
SLComposeViewController *twitter = [[SLComposeViewController alloc] init];
twitter = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[twitter setInitialText:[NSString stringWithFormat: @"%@", message]];
[self presentViewController:twitter animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
感谢您发布此内容,我也发生了同样的事情,因为我在窗口中添加了一个 CAShapeLayer 以获得渐变效果。你的帖子帮助我弄清楚这就是问题所在。
看起来发生这种情况是因为他们将视图层添加到窗口的子层 - 我可能会在索引 0 处添加!这与您的预期相反,即它们会将其视图作为子视图添加到呈现视图控制器的视图中。
他们一定只是认为人们不会向他们的窗口添加图层,并且他们想确保他们不会与您的视图堆栈竞争。-[CALayer insertLayer:layer atIndex:0]我想他们为什么会把它放入索引 0 一定只是因为有人有这样做的习惯。
我不确定,但我猜测任何模式视图控制器都可能出现这种情况。
修复方法非常简单:
[viewController presentViewController:facebookViewController
animated:YES
completion:^{
facebookViewController.view.layer.zPosition = 1000;
}];
Run Code Online (Sandbox Code Playgroud)