查看控制器问题

时间:2015-07-25 03:20:31

标签: ios iphone

是否可以在不使用按钮的情况下显示另一个视图?

我试图做到这一点,如果这个人" CGIntersectsRects" UIImageView, 它会带我到另一个视图控制器。

所以基本上我问是否可以在不使用按钮的情况下在视图控制器之间移动,如果是这样,怎么办?

提前致谢

2 个答案:

答案 0 :(得分:1)

始终从一个ViewController转换到另一个ViewController是通过推送或呈现或执行segue到目标viewController的一些代码来完成的。关键是你执行这段代码。由于您不使用按钮,因此应确定触发屏幕更改的确切内容。

你的意思是“我正在努力使它成为如果人'CGIntersectsRects'的UIImageView,它将我带到另一个视图控制器”是不明确的。

如果您想在用户触摸UIImageView时加载屏幕,您仍然可以使用按钮而不是ImageView并为该按钮设置适当的图像。 另一种方法是在viewController中实现 - (void)touchesBegan:方法,以识别接收触摸的点,并查看触摸点是否落在imageView框架rect内。

另一种简单的方法是向UIImageView添加手势识别器。

UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewTouched)];

    - (void)imageViewTouched {
        //Code to load the new screen
    }

如果您尝试在两个视图重叠时加载新屏幕,则必须观察KVO notification for the frame property of the interested view

答案 1 :(得分:0)

是的,您可以通过Storyboard和实现UIViewController文件的组合来完成此操作。

首先,在Storyboard文件中使用segue连接两个控制器 Connection from first view controller to the second

然后,单击您创建的segue并设置标识符名称。名称是描述性的,如" imageSegue"

最后,返回到用户与UIImageView相交并执行segue时调用的函数

func imageIntersection() {
  self.performSegueWithIdentifier("imageSegue", sender: self) //Use the Storyboard identifier name
}

这将导致当前视图控制器转移到您在故事板中将其连接到的视图控制器