我有这个故事板:
我的第一个ViewController以编程方式将PNG图像作为背景:
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bgleft"]];
}
我的第二个ViewController通过在Storyboard上选择Clear Color as Background属性来具有透明背景。
但是当它在我的iPod上运行时,似乎我的第二个ViewController具有相同的背景,但是从右向左推送第一个ViewController背景。
我想做的是:
当Segue检测到时,它会将第一个ViewController上的所有UI组件从当前位置移动到左侧,这样感觉它全部被第二个ViewController推送(但不是背景,我想将背景保持在其位置)。
然后,第二个ViewController上的所有UI组件都使用Push Transition进入,我已经在Storyboard上设置了透明的ViewController。
因此,它将在不移动背景的情况下从一个ViewController平滑过渡到另一个。
我尝试使用此代码:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"goToViewTwo"])
{
UIViewController *view2 = segue.destinationViewController;
view2.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bgleft"]];
}
}
但我不知道如何移动/动画所有UI组件(按钮,标签等)以执行我所描述的。请告诉我该怎么做..谢谢。
答案 0 :(得分:2)
我认为你可以通过让两个控制器都具有透明背景,然后将背景图像添加到窗口来实现这一点。
答案 1 :(得分:0)
在第二个viewController中粘贴此源
self.view.backgroundColor = [UIColor clearColor];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
self.modalPresentationStyle = UIModalPresentationFormSheet;