OStack程序员社区-中国程序员成长平台

标题: ios - 在选项卡式应用程序中更改选项卡后运动功能不起作用 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 11:40
标题: ios - 在选项卡式应用程序中更改选项卡后运动功能不起作用

我很新。

我正在开发一个选项卡式应用程序。

我想拥有一个带有摇动功能的标签,并入

- (void)motionBeganUIEventSubtype)motion withEventUIEvent *)event
{
    if (event.subtype   == UIEventSubtypeMotionShake)
    {
        NSLog(@"shook");
    }
}

这工作得很好,直到我从这个 FirstViewController 切换到另一个然后回来。一旦我返回 FirstViewController,shake 功能似乎根本不起作用。有什么想法吗?

我确实有以下其他组件

- (BOOL)canBecomeFirstResponder
{
    return YES;
}

- (void)viewDidAppearBOOL)animated
{
    [self canBecomeFirstResponder];
    [super viewDidAppear:animated];
}

-(void)viewWillDisappearBOOL)animated
{
    [self resignFirstResponder];
    [super viewWillDisappear:animated];
}



Best Answer-推荐答案


似乎每次在选项卡之间切换时都不会调用 viewDidAppear:viewDidAppear for tabbar based apps

按照那里的答案建议,实现 UITabBarController 委托(delegate) didSelectViewController 并调用 View Controller 的 viewDidAppear 方法。

或者仍然实现委托(delegate),只检测选择的 View Controller ,如果是FirstViewController,调用方法canBecomeFirstResponder

例如,如果您已将 FirstViewController 声明为标签栏的属性:

- (void)tabBarControllerUITabBarController *)tabBarController didSelectViewControllerUIViewController *)viewController{
  if ([viewController isKindOfClass:[FirstViewController class]]) {
      [viewController canBecomeFirstResponder];
  }
}

关于ios - 在选项卡式应用程序中更改选项卡后运动功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16997254/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4