Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uitableview 抖动手势代码禁用推特键盘和抖动_Uitableview_Shake_Motionevent - Fatal编程技术网

Uitableview 抖动手势代码禁用推特键盘和抖动

Uitableview 抖动手势代码禁用推特键盘和抖动,uitableview,shake,motionevent,Uitableview,Shake,Motionevent,我为抖动手势编写的以下代码工作得非常好,仅当我在三个独立的UITableView中使用它时,当您离开一个tableview转到下一个tableview时,抖动手势就不再工作了。你知道如何让它在所有三个ViewController上都工作吗?此外,我还可以选择在“detailviewcontroller”上发布信息,但是,一旦您离开其中一个表视图,它就会禁用twitter的键盘。有没有办法解决这个问题?谢谢 //BEGIN SHAKE GESTURE CODE - (void)viewDidApp

我为抖动手势编写的以下代码工作得非常好,仅当我在三个独立的UITableView中使用它时,当您离开一个tableview转到下一个tableview时,抖动手势就不再工作了。你知道如何让它在所有三个ViewController上都工作吗?此外,我还可以选择在“detailviewcontroller”上发布信息,但是,一旦您离开其中一个表视图,它就会禁用twitter的键盘。有没有办法解决这个问题?谢谢

//BEGIN SHAKE GESTURE CODE
- (void)viewDidAppear:(BOOL)animated {

    [self becomeFirstResponder];
}

- (void)viewDidDisappear:(BOOL)animated {

    [self resignFirstResponder];

}


- (BOOL)canBecomeFirstResponder {
    return YES;

}

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {

    if (event.subtype == UIEventSubtypeMotionShake) {

        int section = 0;
        int row = arc4random() %36;
        NSIndexPath * path = [NSIndexPath indexPathForRow:row inSection:section];
        [self handleSelectedRow:path.row];

        [self.tableView selectRowAtIndexPath:path animated:YES scrollPosition: UITableViewScrollPositionNone];


    }
}

-(void)handleSelectedRow:(int)row;
{
    UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.tag = row;
    [self performSegueWithIdentifier:@"showRecipeDetail" sender:btn];
}

//END SHAKE GESTURE CODE

为什么不制作一个基类视图控制器(从UIViewController派生)并将抖动运动检测(“
motionEnded:withEvent:
”)函数放入其中,然后从包含抖动运动代码的视图控制器类中将三个不同的视图控制器子类化

换句话说,将震动检测代码放入一个类中,该类如下所示:

@interface HenryViewController : UIViewController
然后在三个不同的视图控制器中,可以这样声明它们:

@interface FirstViewController : HenryViewController

@interface SecondViewController : HenryViewController
至于不能在Tweet上发布信息,键盘可能会消失,因为当它消失时,您正在调用DetailViewController上的“
resignFirstResponder