1

目前我正在开发一个iPhone应用程序,通过滑动手势识别器在两个控件之间导航。如何通过在iPhone SDK中刷卡来推/拉控制器?

应用程序了结构是这样的enter image description here

为此,我先装日历屏幕并在其上的看法没有负载,我用PushViewController加载主屏幕。在主屏幕上,如果用户向左滑动屏幕,则日历屏幕会显示使用PopViewController,或者如果用户滑动右侧,则由PushViewController显示列表视图屏幕。这工作正常。

现在的问题是,在我的列表视图屏幕上,我正在使用UITableViewController,其中手势识别器将无法完美工作,有些时候它无法滑动。

我怎样才能在这些屏幕之间滑动完美,我想滑动scrollview滚动相同。

请给我提供一些解决方案。

回答

0

长时间谷歌搜索后,我找到了一个解决方案。我正在采用宽度为3屏幕的滚动视图,并在其第一个屏幕框架上添加日历xib视图,在其第二个屏幕框架上添加主页xib视图,然后在其第三个屏幕框架上添加列表xib视图,使用此我在主屏幕上创建一个UINavigationController *navigationHome; id parentController; 屏幕管理滚动视图的主屏幕导航,并为其余的控制器使用相同的技术,这将使我工作得很好。

4

如果您的应用程序在iOS 3.2或更高版本上,您可以使用UISwipeGestureRecognizer进行如下操作。

//Add Table 
    UITableView *table = [[UITableView alloc] initWithFrame:CGRectMake(0, 20, 320, 460)]; 
    table.dataSource=self; 
    table.delegate=self; 
    [table reloadData]; 
    [self.view addSubview:table]; 
    [table release]; 

    //Add Gesture Recognizer 
    swipeLeftRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom)]; 
    [table addGestureRecognizer:swipeLeftRecognizer]; 
    [swipeLeftRecognizer release]; 

而在你的控制器的某个地方;

-(void)handleSwipeFrom { 

    if (swipeLeftRecognizer.direction == UISwipeGestureRecognizerDirectionRight) { 

     // Your code here to go back to the main view 

    } 

} 

这只会对正确的滑动作出反应,并会让你的表行为正常。希望这可以帮助! :)