【问题标题】:Objective-C: How to load a different view on button tap?Objective-C:如何在按钮点击时加载不同的视图?
【发布时间】:2013-03-26 16:26:07
【问题描述】:

我有一个 iPad 应用程序,它在一个视图上有一个按钮。当我按下按钮时,我希望它加载第二个视图。我要加载的第二个视图是 CollectionView。我没有使用,也不想使用 UINavigationController。

有谁知道如何在点击按钮时加载第二个视图?此外,我还想创建一个返回到上一个视图的返回按钮。每次点击按钮时,上一个视图都可能不同。

网上有很多关于这个主题的材料,但我找不到任何有用的东西或任何最近的东西。

这是我现在的代码:

-(void)showCollectionView:(id)sender
{
    NSLog(@"In ShowCollectionView");

    ZHCollectionViewController *cvc = [[ZHCollectionViewController alloc]
                              initWithNibName:@"ZHCollectionViewController"
                              bundle:[NSBundle mainBundle]];
    [self.view addSubview:cvc.view];

    NSLog(@"After all the stuff");
}

当它运行时,两个 NSLog 都被执行并且消息显示在控制台中,但视图没有任何反应。

【问题讨论】:

  • 这应该可以正常工作。我猜ZHCollectionViewController 某处有问题。也许是它的视图的创建方式。

标签: ios button views collectionview


【解决方案1】:

你可以尝试以模态方式呈现它:

[self presentViewController:cvc animated:YES completion:^{
                                                         }];

在此调用之前,您可以通过定义过渡和演示样式来自定义“cvc”的外观,例如:

cvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
cvc.modalPresentationStyle = UIModalPresentationFormSheet;

为了隐藏它在 ZHCollectionViewController 中调用,我相信在一些按钮操作中

[self dismissViewControllerAnimated:NO completion:^{  
                                                   }];

【讨论】:

  • 你是说presentViewController还是presentingViewController,presentViewController不可用。
  • 你能解释一下 [self presentViewController...] 更多。我不能让那条线工作。动画参数不可用,当我尝试实现该行时出现“No Visible @Interface”错误
  • @ZacharyHunt,self 表示 UIViewController 子类(在我的示例中)。如果你找不到它,那么很可能你在 UIView 上,你需要找到你当前的视图控制器。
【解决方案2】:

有几种方法可以做到这一点,而您尝试的方法不是其中之一。如果你只想添加一个视图,而不是视图控制器,你应该有一个 xib 文件,它是一个视图,而不是一个视图控制器。您必须将要将此集合视图添加到其视图的控制器设为此集合视图的文件所有者,以便您可以将任何出口连接到它。

将另一个视图控制器的视图添加到您的视图中是不正确的,除非您将该控制器设置为子控制器。如果您希望 ZHCollectionViewController 成为集合视图的控制器,那么您应该将该控制器添加为子视图控制器。您可以查看 Apple 关于自定义容器控制器的文档,了解它是如何完成的。

您在问题中并没有真正说明此集合视图的显示方式。你想让它占据整个屏幕,还是你想让它成为一个子视图?如果你想让它占据整个屏幕,那么最好将窗口的根视图控制器更改为 ZHCollectionViewController,或者在当前视图上模态显示它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    相关资源
    最近更新 更多