Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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
Ios 3D触控快速动作_Ios_Objective C_Xcode_3dtouch - Fatal编程技术网

Ios 3D触控快速动作

Ios 3D触控快速动作,ios,objective-c,xcode,3dtouch,Ios,Objective C,Xcode,3dtouch,我正试图在应用程序的图标上实现一个3D触控的快速动作,一些非常奇怪的事情正在发生 我正在做的图标快速操作应该是使用根视图控制器打开应用程序,隐藏一些视图,显示其他视图并检查更新。一切正常,直到我转到另一个视图控制器,回到主视图控制器,按下主视图按钮并尝试快速执行相同的操作 如果我移动到另一个视图控制器,回到主视图控制器,并尝试快速操作,视图将不再隐藏/取消隐藏,但检查更新方法正常工作。此外,正在调用隐藏/取消隐藏的代码,但它不会生效 尝试使用PerformMonMainThread执行隐藏/取消

我正试图在应用程序的图标上实现一个3D触控的快速动作,一些非常奇怪的事情正在发生

我正在做的图标快速操作应该是使用根视图控制器打开应用程序,隐藏一些视图,显示其他视图并检查更新。一切正常,直到我转到另一个视图控制器,回到主视图控制器,按下主视图按钮并尝试快速执行相同的操作

如果我移动到另一个视图控制器,回到主视图控制器,并尝试快速操作,视图将不再隐藏/取消隐藏,但检查更新方法正常工作。此外,正在调用隐藏/取消隐藏的代码,但它不会生效

尝试使用PerformMonMainThread执行隐藏/取消隐藏方法,尝试在主线程上调度该方法,但出现延迟,结果无效

AppDelegate:

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
{
    if ([shortcutItem.type isEqualToString:@"com.systems"])
    {
        self.shortcutAction = kShortcutActionSystems;
    }
}
主视图控制器:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(appBecameActive)
                                                     name:UIApplicationDidBecomeActiveNotification object:nil];
}


- (void)appBecameActive
{
    if ([appDelegate.shortcutAction isEqualToString:kShortcutActionUpdates])
    {
        if (authenticated)
        {
            [self showUpdates:nil];
            [self checkForUpdates:nil];
        }
        else
        {
            [self showUpdates:nil];
        }
    }
}
checkForUpdates:始终被调用并始终执行请求。 showUpdates:始终被调用,但如果我移动到另一个视图控制器并返回,则隐藏/取消隐藏部分不起作用

编辑:

在showUpdates中:我调用另一个方法:

- (IBAction)showUpdates:(id)sender
{
    if (authenticated)
    {
        //[self showUpdatesAuthenticatedView];
        [self performSelectorOnMainThread:@selector(showUpdatesAuthenticatedView) withObject:nil waitUntilDone:NO];


- (void)showUpdatesAuthenticatedView
{
    _updatesTableView.dataSource = self;
    [_updatesTableView reloadData];

    _updatesIndicator.hidden = NO;
    _systemsIndicator.hidden = YES;

    _updatesTableView.hidden = NO;
    _backTableView.hidden = NO;
    _checkUpdatesOutlet.hidden = NO;

    _systemTableView.hidden = YES;
    _loginAskView.hidden = YES;
}

隐藏/取消隐藏代码在哪里oI添加了隐藏方法。请发布showUpdates方法。showUpdateAuthenticatedView如何调用?我尝试调用showUpdates:在主线程上,使用dispatch,然后在主线程和dispatch主队列上也调用showUpdateAuthenticatedView,仍然没有任何结果