导航推送新的根控制器

2023-12-02

我正在尝试将新的根控制器推送到导航堆栈,但使用侧面显示菜单。

我的应用程序委托具有以下内容:

    welcomeViewController = [[MyWelcomeViewController  alloc] initWithNibName:@"MyWelcomeViewController" bundle:nil];
navController = [[UINavigationController alloc] initWithRootViewController:welcomeViewController];
navController.navigationBarHidden = YES;

// Then we setup the reveal side view controller with the root view controller as the navigation controller
self.revealSideViewController = [[PPRevealSideViewController alloc] initWithRootViewController:navController];
[self.revealSideViewController setDirectionsToShowBounce:PPRevealSideDirectionNone];
[self.revealSideViewController setPanInteractionsWhenClosed:PPRevealSideInteractionContentView | PPRevealSideInteractionNavigationBar];

// Then we make the window root view controller the reveal side view controller
self.window.rootViewController = self.revealSideViewController;

显示欢迎视图控制器后,用户将登录。登录后,以下进程将再次从应用程序委托运行。

self.navController.navigationBarHidden = NO;
[self.navController setTitle:@"Home"];
[self.navController pushViewController:homeViewController animated:NO];

然后我有一个侧视图控制器设置,它是带有自定义单元设置的表格视图。

当选择一行时,我需要将新的根控制器推送到导航控制器上。我通过在所选单元格的表视图中使用以下内容来尝试此操作。

MyAccountViewController *accountViewController = [[MyAccountViewController alloc] init];
[self.navigationController setViewControllers:[NSArray arrayWithObject:accountViewController] animated:NO];

不幸的是这没有任何作用。如果我将代码添加到应用程序委托,然后从表视图控制器调用该方法,那么它就可以工作,但不能从表视图本身的 .m 文件调用。添加日志我可以看到上面的内容正在运行,只是没有执行任何操作。

我不确定我是否需要对上述内容做任何不同的事情。例如,完全弹出当前显示的视图,然后重新创建导航控制器和 PPRevealSideViewController。如果我应该这样做,我不确定如何弹出所有当前视图,然后将新视图推送到窗口,而不是从 AppDelegate 推送。

我不希望在应用程序委托中使用此方法的原因是因为这是解决此问题的错误方法,然后我需要为每个我想从菜单推送的新根控制器使用单独的方法,因此应用程序委托将变成很大。

enter image description here


Check UINavigationController.h:

@interface UIViewController (UINavigationControllerItem)
@property(nonatomic,readonly,retain) UINavigationController *navigationController; // If this view controller has been pushed onto a navigation controller, return it.

这意味着当你这样做时myViewController.navigationController你会得到nil if myViewController不会被推送到任何 navController 或 navController 引用myViewController被推入。

据我了解你的tableViewController没有被推入 navController 堆栈,这意味着你无法通过以下方式获取 navControllertableViewController.navigationController。相反,你需要使用anyViewControllerInTheStack.navigationController或者如果 navController 是rootViewController你的keyWindow, by

((UINavigationController*)[[UIApplication sharedApplication] keyWindow].rootViewController)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导航推送新的根控制器 的相关文章

  • NSBatchDeleteRequest 不删除关系

    我有一个问题NSBatchDeleteRequest似乎无法删除关系引用 我有两个实体 News 类别 其中一个类别可以有多个新闻 现在 当我尝试使用删除核心数据中的所有对象时NSBatchDeleteRequest使用以下代码 然后查看s
  • 如何将圆角半径设置为 UIBezierPath

    我创建了以下图像UIBezierPath使用此代码 Bezier Drawing let bezierPath UIBezierPath bezierPath move to CGPoint x 360 y 0 bezierPath add
  • 如何使用 Mapkit 在 iPhone 中显示离线地图

    如何使用mapkit在iPhone中显示离线地图 如果我使用静态图像 那么我如何获取当前位置并在其上放置针 任何人有想法请提出一些解决方案 谢谢 试试这个帖子强制 MapKit 仅使用缓存的地图图块 以编程方式禁用网络 https stac
  • 以编程方式在 Swift 中实现尾随和前导约束 (NSLayoutConstraints)

    我正在从 xib 添加一个视图到我的 ViewController 中 然后我将其限制真正适合它 override func viewDidAppear animated Bool super viewDidAppear animated
  • Xcode 8 - 丢失文件警告

    自从使用 Swift 2 3 升级到 Xcode 8 我有几个丢失文件的警告 它们都与我正在使用的 pod 有关 丢失的文件是 xcscheme cpp xcuserstate swift 显示丢失文件的 pod 是 领域 38 43 Te
  • 接受 iOS 应用付款吗?

    在ios应用程序上实现支付系统可以吗 我想制作一个应用程序 可以浏览我的电子商务网站上的产品 然后让人们在我的应用程序上购买产品 我问这个问题是因为我听说它违反了苹果的政策 这显然取决于所出售的商品 当然 最终的答案只能从你的律师对苹果协议
  • IOS 向特定用户推送通知?

    是否可以向特定设备发送 iOS 推送通知 我构建了一个论坛类型的应用程序 用户可以创建问题 其他人可以回答它 我需要向提出问题的特定用户发送 iOS 推送通知 通知他们问题已得到解答 这可以通过 PHP 或其他方法来完成吗 是的 您绝对可以
  • 在没有按钮的 SwiftUI 中呈现新视图

    所以我想使用 SwiftUI 呈现一个新视图 而用户不必点击按钮 因为NavigationButton会用那个 这是一个例子 struct ContentView View var model Model var body some Vie
  • 将 autoResizingMask 与 CGRectZero 结合使用

    我正在为表格视图部分构建页脚 页脚的高度将在中指定heightForFooterInSection so in viewForFooterInSection我只想添加子视图并指定页脚视图应填充指定的任何页脚高度 此页脚大小将是动态的 所以
  • 裁剪图像和中心

    在 Swift 中如何裁剪图像并将其放在中心 我已经裁剪了图像 但想将其放在中间 ImgView image OrigImage var masklayer CAShapeLayer masklayer frame ImgView fram
  • 用于 iOS 搜索的 Facebook Graph API

    我尝试使用以下代码从 Graph API 中搜索地点 但没有成功 有人可以启发我的道路吗 如果我尝试发布链接 消息 照片 它会按预期工作 但是当尝试获取位置时 它总是失败并给我 The operation couldn t be compl
  • iOS Facebook Like 按钮无法与 iOS 应用程序配合使用

    尝试将 Facebook Like 按钮添加到 iOS 应用程序中 按照网上的说明进行操作 发现一个问题 模拟器上没有安装 Facebook 应用程序 8 x 7 x 当按下 F Like 按钮时 我们会看到切换到 Facebook com
  • iOS Facebook SDK 通过图搜索来搜索用户

    我是图形搜索新手 我想搜索具有电子邮件地址的用户 那可能吗 现在 我只知道如何使用他们的名字进行搜索 如下所示 https graph facebook com search q chandler de angelis type user
  • UIStackView - 拖动以重新排序排列的子视图?

    我试图获得一些关于如何实现在 a 上发现的相同类型的 拖动重新排序 行为的建议 UITableView但在一个UIStackView 到目前为止 这就是我的想法 为每个按钮添加一个长按手势识别器arrangedSubviews 长按时 添加
  • Swift - 使用 NSUserDefaults 保存高分

    我正在使用 Swift 制作游戏 我想使用 NSUserDefaults 保存用户的高分 我知道如何在 AppDelegate 文件中创建新的 NSUserDefaults 变量 let highscore NSUserDefaults N
  • 在 SpriteKit 中,touchesBegan 是否与 SKScene 更新方法在同一线程中运行?

    在 Apple 文档中高级场景处理 https developer apple com library ios documentation GraphicsAnimation Conceptual SpriteKit PG Actions
  • xamarin 中的本机链接错误

    我今天尝试编译我的 xamarin 项目 突然收到以下错误 错误 MT5210 本机链接失败 未定义符号 mono handle global vregs 请验证是否已引用所有必要的框架并且本机库是否正确 链接到 错误 MT5210 本机链
  • 如何将文本从文本字段发送到另一个视图控制器

    我正在制作一个应用程序 其行为类似于 iPhone 中的默认 Messages app 用户可以在其中编写短信UITextField点击 发送 按钮后 该值UITextField in ComposeViewController将被转移到表
  • iOS APNS:以字符串格式将设备令牌发送给提供商

    我需要通过调用在我的请求中需要 JSON 数据的服务 将 iOS 应用程序的 APNS 设备令牌发送给我的提供商 我正在阅读苹果的本地和推送通知编程指南 https developer apple com library ios docum
  • Ionic 3 Deeplinking - 从 URL 启动应用程序

    我正在使用 Ionic 开发一个跨平台应用程序 当尝试实现深度链接时 我安装了一个名为 Ionic Native 插件深层链接 我运行了这些命令 ionic cordova plugin add ionic plugin deeplinks

随机推荐

  • 带有“链接服务器”的 EF 6.1.3

    我正在使用 SQL Server 2012 和 EF 6 1 3 我有一个中央数据库 A 和另一个链接到数据库 A 的数据库 B 这两个数据库用于两个不同的应用程序 在数据库 B 中 我有一些视图 它们与中央数据库 A 中的某些表完全相同
  • java 9下运行时将jar添加到类路径

    Until java9为了在运行时通过编程方式将外部 jar 添加到类路径 每个人都使用 URLClassLoader sysloader URLClassLoader ClassLoader getSystemClassLoader Me
  • 为什么函数在画布中返回错误的颜色?

    我的画布颜色是 50 255 50 155 当我执行代码时 function getClickedAreaColor x y var data ctx getImageData x y 1 1 data color for var i 0
  • ItemSend 事件未触发

    我有一个 Outlook 2007 加载项 VSTO 任何使用 Outlook 发送的邮件都应在此之前进行修改 我用Application ItemSend事件 如果我直接从 Outlook 发送电子邮件 Inspector 或通过 使用的
  • 如何在 Windows Phone 中的计划任务代理上裁剪图像

    我需要使用 ScheduledTaskAgent 裁剪图像 由于它在后台运行 因此在尝试实例化 WriteableBitmap 时出现跨线程异常 因为它需要在 UI 线程中创建 我有一个图像流 如何在不使用 WriteableBitmap
  • 如何捕获 select2 的 Enter 按键

    我有一个国家 地区的 select2 下拉列表 多选 当用户输入关键字时 它会在菜单中显示相关项目 例如 如果用户输入ind 菜单显示India and 印度尼西亚 如果按下 Enter 键 则第一项 India 被选中 这是默认行为 现在
  • Visual Studio 2015 初始化部分 Nuget.PackageManagement.VisualStudio.VSolutionManager 必须在 UI 线程上调用

    在尝试在最近更新的 Visual Studio 2015 14 0 25431 01 Update 3 中构建或打开项目时 我不断收到有关 nuget 包管理的错误 每当我打开 VS 后第一次构建项目时 都会收到以下错误消息 当我尝试打开
  • 在考虑多个条件的方法中返回 null

    考虑以下方法 private static String method String string if string equals conditionOne return value else if string equals condi
  • 如何在 C++ 中可移植地计算 sha1 哈希值?

    目标是计算SHA1作为 C 程序一部分的一个或多个缓冲区的哈希值 我不确定使用 boost 的 UUID 是否会正确地在哈希值中添加前导零 据我所知 您的字符串应该始终具有相同的长度 因此这里是上面示例的简化版本 可以做到这一点 inclu
  • css3 动画停止

    目前我正在制作带有滑块动画的标题 仅限 css3 http jimmytenbrink nl slider 一切工作正常 除了有时从中心向右移动时滑块会出现故障 看来我需要停止动画几毫秒才能完成 然而 我在互联网上到处搜索 但似乎无法让它工
  • 无法访问 Metro 应用中的资产文件

    我正在尝试读取一个文本文件 该文件作为 Metro 应用程序中的资产提供 如果将文件路径指定为 ms appx Assets file txt 我会收到访问被拒绝错误 显然我需要设置一些访问安装位置文件夹的功能 我尝试启用清单设计器中的所有
  • Visual Studio 安装和部署构建失败,没有错误

    我有一个设置和部署项目 在我们的构建服务器上 在摘要中报告以下内容 全部重建 25 成功 2 失败 0 跳过 我不知道失败的两个是什么 但我相信其中之一是 vdproj 项目 因为如果我在没有安装程序的情况下运行构建 则根本不会报告任何错误
  • 如何用PHP下载大文件?

    我花了一周的时间来找到这个问题的正确答案 Right 我的意思是绝对符合现有的网络标准 可靠且性能有效 最后 我找到了解决方案 我在 StackOverflow 上找到的所有内容 在 PHP 中可靠地下载大文件 如何通过PHP脚本下载大文件
  • 使用 Quartz.NET 3.0.3 和简单注入器进行构造函数注入操作方法

    我正在尝试在 Windows 服务中使用 Quartz Net v3 0 3 和简单注入器 我有一个作业类 我想在其下面注入一些依赖项 例如我的记录器 public class JobWorker IJob private ILogger
  • 向按钮添加彩色阴影

    我需要向具有 来自 zeplin 这些属性的按钮添加阴影 这就是设计 我试过这段代码
  • React 中生成器的调用次数超出预期

    我发现生成器似乎被调用两次的行为 下面是一个简单的代码 它从生成器获取一个数字并将其输出到控制台 它期望控制台输出 0 和 1 但实际上输出的是 0 和 2 import useState useEffect from react func
  • <%= 导轨 4 中有一个块

    我正在尝试在助手中使用块 但这给了我这个错误 SyntaxError syntax error unexpected rbout concat green title do to s erbout concat n erb 4254 syn
  • 大多数静态数据流的 CRC 计算

    背景 我有一段内存 1024字节 最后 1020 字节始终相同 前 4 个字节将发生变化 产品的序列号 我需要计算CRC 16 CCITT 0xFFFF 起始 0x1021 掩码 对于整个内存部分 CRC WHOLE 问题 是否可以仅计算前
  • 如何在 XAML 中绑定到静态属性?

    我试图将不同类的静态属性绑定到 TextBlock 的 Text 属性 并且可以使绑定正常工作 但是当静态属性的值发生更改时 Text 属性不会更新 我读过 我无法使用 INotifyPropertyChanged 因为该属性是静态的 并且
  • 导航推送新的根控制器

    我正在尝试将新的根控制器推送到导航堆栈 但使用侧面显示菜单 我的应用程序委托具有以下内容 welcomeViewController MyWelcomeViewController alloc initWithNibName MyWelco