工程是一个single view application,默认有一个view controller, 我将此作为RootViewController,在这个ViewController的viewDidLoad函数里面添加一个toolbar view controller和一个 stage view controller。toolbar view controller--提供了一些按钮, 如“选择服饰”等等,其本身是一个view controller。
stage view controlloer--舞台展示,用于展示衣服。用户“选择服饰”按钮会弹出close view controller,在close view controller选择某服饰后,该服饰的“正面”,“左侧面”,“右侧面”,“反面”会被显示在stage view controller上,但是每一次都只能看到一个面。用户可以通过手势滑动来切换不同的面。现在的问题时,当我在RootViewController上放置多个view controller以后,在stage view controller上做手势滑动的时候,程序不能接收到该消息。之前我做的功能点预研测试程序是可以接收到手势滑动消息的,功能点预言程序比较简单,就是一个single view application工程,在里面添加了一个stage view controller并在其上创建不同的UIView*,对应衣服的每一个面,然后将不同面的UIView×与手势进行关联。这个帖子是在家里发的,如果觉得看起来比较麻烦的话,回公司我会截一个图给大家,希望高手指点。谢谢!viewcontroller

解决方案 »

  1.   

    是不是要在响应的view controller里面加上 [self becomeFirstResponder];刚才看文档有这么一句,不知道可不可以,元旦放完假,去公司试一下。
      

  2.   

    在你的rootviewcontroller中重写touch函数,subviewcontroller中不要重写touch函数,写几个自定义的touch函数,然后在rootviewcontroller中的touch函数中调用subviewcontroller的相应touch函数,就是一个根接受事件,其他都用它传过来的事件,这样统一管理,分散处理
      

  3.   

    如图所示,stage view controller有很多服饰面,如正面,反面,左侧面,右侧面等等,这些都是通过手势滑动来响应的,但是现这个stage view controller接受不到手势消息,如果按照  iam_gaowei 的做法的话,感觉比较麻烦,因为这样我还需要为每一个view controller做判断,有没有更好的方法啊。
      

  4.   

    在rootviewcontroller 的- (void)viewDidLoad代码我是这样写的:
    先显示stage view controller.view,然后显示 toolbar view controller.view,这样的话,stage view controller的view就不是最上层的了,这样当你点击stage view controller就不能触发手势动作。将其两者顺序颠倒以下使stage view controller的view出于上层,这样在stage view controller就会响应手势消息处理,不过目前有一个问题,这个手势UISwipeGestureRecognizer消息不是每次都能被准确地触发,尤其是我鼠标由右往左滑动时,几乎不可以被触发,以上是在pc模拟器及真机上的测试结果。是不是UISwipeGestureRecognizer消息就是只能响应从左往右滑啊?