ios - 查看从不加载

标签 ios objective-c

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler {

    MainView *Main=[[MainView alloc]initWithNibName:@"MainView" bundle:nil];
    // This module to collect metrics for Notification received, Notification displayed
    UINavigationController *NavBar=[[UINavigationController alloc] initWithRootViewController:Main];

    // react to shortcut item selections
    NSLog(@"A shortcut item was pressed. It was %@.", shortcutItem.localizedTitle);
    if([(NSString *)shortcutItem.localizedTitle isEqualToString:@"Store"])
    {
        PurchaseView *purchaseViewController = [[PurchaseView alloc] initWithNibName:@"PurchaseView" bundle:nil];
        [NavBar pushViewController:purchaseViewController animated:YES];
    }
}

我进入 if([(NSString *)shortcutItem.localizedTitle isEqualToString:@"Store"]) 循环,我看到代码正在执行。但 PurchaseView.xib 永远不会加载。我有类似的推送通知代码,它在我推送要加载的 View 时有效。

如有任何帮助,我们将不胜感激。

最佳答案

这里的问题是糟糕的 View 层次结构。您将 XIB 文件的 View Controller 添加到一个全新的 UINavigationController,它在 View 层次结构中的任何位置都不存在。我相信你想做这样的事情:

UINavigationController *navBar = (UINavigationController *) self.tabBarController.selectedViewController;
[navBar pushViewController:purchaseViewController animated:YES];

同样,以上是一个假设的例子。您需要在 View 层次结构中找到正确的 UINavigationController

关于ios - 查看从不加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32869989/

相关文章:

ios - 如何删除tableView单元iOS

ios - 使用导航栏按钮项和核心数据在 View Controller 之间传递日期

iphone - UIPickerView字体

ios - 在不重新提交的情况下编辑 “Pending Developer Release” 应用程序的元数据?

ios - RNFIREBASE MESSENGER 不适用于 iOS,但适用于 Android

ios - xcode 使用 iOS 10 设备构建项目,但启动时崩溃 : Message from debugger: Terminated due to memory issue

iphone - 我可以在 iOS 项目名称中添加表情符号图标吗?

ios - 连接 Internet - 我怎样才能尝试连接 5 秒然后放弃?

ios - UICollectionView RTL 方向

objective-c - 如何使用 UIAlertController 修复运行时错误