【发布时间】:2011-11-27 03:33:59
【问题描述】:
我正在尝试在常规视图中创建子视图。当单击此子视图中包含的按钮时,它将翻转并显示一个新的子视图。这将是为了模拟一张牌在桌子上翻转。我有一个 DetailViewController 是一个空的 xib,但是当它加载时它会加载另一个名为 CardFrontViewController 的控制器,该控制器实际上包含所有包含在 xib 中的子视图(卡的正面)。一旦子视图中的按钮,它应该加载包含在 CardBackViewController xib 中的子视图。
DetailViewController 内部
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
if (!self.cardFrontViewController)
{
self.cardFrontViewController = [[CardFrontViewController alloc] initWithNibName: @"CardFrontViewController" bundle: nil];
[self.view addSubview: self.cardFrontViewController.view];
}
[self configureView];
}
CardFrontViewController 内部
- (IBAction)flipToAnswerCard:(id)sender
{
if (!self.cardBackViewController)
{
self.cardBackViewController = [[CardBackViewController alloc] initWithNibName: @"CardBackViewController" bundle: nil];
}
[UIView transitionWithView: self.cardFrontContainerView
duration: 1.0
options: UIViewAnimationOptionTransitionFlipFromTop
animations: ^{ [self.cardFrontSubView removeFromSuperview];
[self.cardFrontContainerView addSubview: self.cardBackViewController.cardBackSubView]; }
completion: nil];
}
当我点击按钮翻转卡片时,卡片翻转,但是显示的视图是空的,这意味着self.cardBackViewController.cardBackSubView里面没有加载。
如果我在翻转卡方法中执行[self.cardFrontContainerView addSubview: self.cardBackViewController.view],它会在里面加载整个xib,但我真的只是想要一个里面的视图。我不确定在这里做什么。
【问题讨论】:
标签: objective-c uiview uiviewcontroller ios5