尝试使用静态3D触摸快速操作在Obj-C中工作

Bra*_*nch 6 objective-c ios quickaction 3dtouch

所以我想要一个非常基本的3D触摸设置.在我的主UI上,我有一个2选项分段控件,我基本上想要在使用3DQuickActionA时打开时选择一个选项,而使用3DTouchQuickActionB则选择另一个选项.

我查看了本网站上的其他问题,建议我使用:

- (void)handleShortCutItem:(UIApplicationShortcutItem *)shortcutItem  {
if([shortcutItem.type isEqualToString:@"3DQuickActionA"]){
    self.quote_opt.selectedSegmentIndex = 0;    }
if([shortcutItem.type isEqualToString:@"3DQuickActionB"]){
    self.quote_opt.selectedSegmentIndex = 1;    }
}
Run Code Online (Sandbox Code Playgroud)

其中quote_opt是我的分段控件的名称.

但是,这不起作用.我的应用程序启动正常,但只是将quote_opt的最后一个值作为当前选项 - 3D触摸操作不执行任何操作.我确定我错过了什么,但我不知道是什么.是否需要在viewdidload中进行某些操作?

任何建议都将不胜感激,我很乐意发布任何代码的其他部分/回答解决问题所需的任何其他问题.

谢谢!

EDU*_*sta 1

您还需要检查launchOptions一下didFinishLaunchingWithOptions

因此,作为正在进行的聊天的结果,这是最新的代码:

应用程序代理

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [FIRApp configure];

    if(launchOptions)
    {
        UIApplicationShortcutItem *selectedItem = [launchOptions objectForKey:UIApplicationLaunchOptionsShortcutItemKey];

        if(selectedItem)
        {
            [self applyShortcutItem:selectedItem];
        }
    }
    return YES;
}

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
{
    [self applyShortcutItem:shortcutItem];
}

- (void)applyShortcutItem:(UIApplicationShortcutItem *)shortcutItem
{
    ViewController *rootViewController = (ViewController *)[self.window rootViewController];

    if([shortcutItem.type isEqualToString:@"DogModeShortcut"])
    {
        [rootViewController setShortcutAction:LaunchDogMode];
    }
    else if([shortcutItem.type isEqualToString:@"CatModeShortcut"])
    {
        [rootViewController setShortcutAction:LaunchCatMode];
    }
}
Run Code Online (Sandbox Code Playgroud)