在选项卡栏开关上弹出到根导航控制器时出现问题

2024-01-03

尝试模仿/复制内置地址簿,特别是从“电话”应用程序内部编辑联系人或查看现有联系人信息时的行为。当您导航到另一个选项卡时,编辑状态将重置,并弹出“新联系人”或“信息”视图,以便当您返回“联系人”选项卡时,您将返回到根表视图。

我使用 setEditing: 和 popToViewController: 在 vi​​ewWillDisappear 中完成了大部分工作,但是当用户使用后退按钮从 Info 视图导航到表视图时,我会得到奇怪的行为。即使我弹出到根表视图控制器,它似乎正在使用默认的 UITableViewController 类而不是我的子类(例如,标准选择行为而不是我的覆盖来推送详细信息视图。)

有什么提示吗?内窥镜检查

下面是一些代码来说明:

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];

    // This is to clean up from the colored bar in detail view
    self.navigationController.navigationBar.tintColor = nil;

    // These are to match the behaviour of Contacts app
    [self setEditing:NO animated:NO];

    // This is the tricky part: works when switching tabs, but not when back button was going to pop anyway!!
    [self.navigationController popToViewController:rootViewControllerForTab animated:NO];
}

-viewWillDisappear: 方法不是修改 navigationController 的视图控制器堆栈的最佳位置,因为当您切换选项卡和将视图推到其顶部时都会触发该方法。

我对此进行了一些尝试,发现最好的位置是在 -[UITabBarControllerDelegate tabBarController:didSelectViewController:] 方法中。因此,首先您需要指定一个对象作为选项卡栏的委托(我使用了应用程序委托)。将 UITabBarController 的 delegate 属性绑定到在代码或 Interface Builder 中实现 UITabBarControllerDelegate 协议的对象。

然后,实现 -tabBarController:didSelectViewController: 方法。现在的技巧是如何判断您的“地址簿”选项卡何时被切换。我使用 UINavigationController 类型的属性(选项卡的根视图控制器)跟踪相关选项卡的视图控制器。使用 Interface Builder 将 tab1NavController 属性绑定到实际实例后,可以使用它与 viewController 参数进行比较,以查看刚刚选择了哪个选项卡。

@interface Pop2RootTabSwitchAppDelegate : NSObject 
    <UIApplicationDelegate, UITabBarControllerDelegate> {
  UINavigationController *tab1NavController;
}
@property (nonatomic, retain) IBOutlet UINavigationController *tab1NavController;
@end

@implementation Pop2RootTabSwitchAppDelegate

- (void)tabBarController:(UITabBarController *)tabBarController 
  didSelectViewController:(UIViewController *)viewController {
   NSLog(@"[%@ tabBarController:%@  didSelectViewController:%@]", [self class], 
       tabBarController, viewController);
   if (viewController == tab1NavController) {
       NSLog(@"viewController == tab1NavController");
       [tab1NavController popToRootViewControllerAnimated:NO];
   }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在选项卡栏开关上弹出到根导航控制器时出现问题 的相关文章

  • iPhone OS 3.0.1 会毁掉你的开发手机吗?

    我将手机更新到3 0 1 虽然手机作为手机工作正常 xcode http en wikipedia org wiki Xcode组织者不再知道手机的名称 它还说这个版本的 xcode 不支持 3 0 1 我下载了最新版本的xcode和操作系
  • 如何从 UILabel 创建图像?

    我目前正在 iPhone 上开发一个简单的类似 Photoshop 的应用程序 当我想要展平图层时 标签位于良好的位置 但字体大小不佳 这是我要展平的代码 UIGraphicsBeginImageContext CGSizeMake wid
  • TableView 中图像的大小不正确

    我正在使用来自 URL 的图像创建一个表视图 但图像不会调整到所有视图的大小 直到我将其按入行中 知道为什么会发生这种情况吗 这是一个自定义的表格视图 我的代码是 UITableViewCell tableView UITableView
  • 延迟图像下载完成后更新 UITableViewCell

    异步下载单元格图像后 我在更新 UITableViewCells 时遇到一些问题 我正在使用自定义 UITableViewCells 如下所示 UITableViewCell tableView UITableView tableView
  • iPhone AVFoundation 相机方向

    我一直在绞尽脑汁地试图让 AVFoundation 相机以正确的方向 即设备方向 捕获图片 但我无法让它工作 我看过教程 看过 WWDC 演示 还下载了 WWDC 示例程序 但即使这样也没有成功 我的应用程序的代码是 AVCaptureCo
  • iOS 4.3 上的cameraOverlayView 问题

    我使用带有cameraOverlayView的选择器控制器在相机视图中显示产品的图像 在应用到覆盖层之前 产品图像会调整大小 它在 iOS 4 2 上运行良好 但在 iOS 4 3 上产品图像显示为全尺寸 pickerController
  • 如何从 iOS 应用程序检测不安全的 wifi 网络

    我想检测我的应用程序中是否存在不安全的 wifi 网络 是否有任何公共 iOS API 可以实现相同的目的 没有记录的 API 可以获取该信息 如果您的应用程序需要通过网络发送和接收敏感数据 您通常应该假设没有安全连接
  • CMSampleBufferSetDataBufferFromAudioBufferList 返回错误 12731

    我正在尝试捕获应用程序声音并将其传递给 AVAssetWriter 作为输入 我正在设置音频单元的回调以获取 AudioBufferList 问题始于将 AudioBufferList 转换为 CMSampleBufferRef 它总是返回
  • 如何将 UIImageView 裁剪为自定义形状

    用户是否可以在该位周围画一条虚线 圆圈 UIImageView他们希望裁剪到 然后为UIImageView调整大小到这些点 这有点像 Photoshop 中的套索 选取框效果 更新 从 iOS 8 x 开始 UIImageView 提供了m
  • 我如何从 iPhone 设备获取电子邮件历史记录..?

    friends 我想从我的 iPhone 访问电子邮件历史记录 并且还希望在收到新邮件时收到通知 如果可能的话 请向我提供源代码片段 Thanks 简而言之 使用任何已记录的 API 都是不可能的
  • Objective C (iphone) 关于发布的问题

    如果我创建一个视图 并将其添加为子视图并将其添加到数组中 是否必须释放它两次 UIView cat UIView alloc initWithFrame someFrame self view addSubview cat self ani
  • 背景大小:封面在视网膜显示屏上看起来像素化

    可以看到我正在开发的网站here http ourcityourstory com dev 如果你查看 iPad 3 或 iPhone 4 上的 关于 或 联系 部分 背景看起来全都是疯狂的像素化 我有background size set
  • 为具有多个目标和不同平台的项目编写 Podfile

    我正在准备一个支持 OS X 和 iOS 的 Pod 我的 pod 有一些自己的依赖项 这些依赖项在 podspec 文件中定义 因此我使用 Podfile 来管理我用来开发 pod 和运行测试的项目的依赖项 我正在使用 CocoaPods
  • 命令 /Applications/Xcode-beta.app/Contents/Developer/usr/bin/atool 失败,退出代码 255

    它发生在新的 Xcode7 beta 中 CompileAssetCatalog Users admin Library Developer Xcode DerivedData InstaAd ddgdnbxlpxipirebpndfmgr
  • 在成为FirstResponder或resignFirstResponder的情况下将对象保持在键盘顶部?

    我目前在键盘顶部有一个 UITextField 当您点击它时 它应该粘在键盘顶部并平滑地向上移动 我不知道键盘的具体时长和动画类型 所以确实很坎坷 这是我所拥有的 theTextView resignFirstResponder UIVie
  • 从 IOS 应用程序注销的完美方法是什么?

    下面的代码可以工作 但有一个错误 场景是 我首先登录进入应用程序系统 登录成功后 应用程序将设置 UserDefaults UserId 之后 我可以使用存储的 UserId 导航应用程序视图 一旦我进入设置和选项卡注销 这将清除 User
  • 重新启动应用程序时出现异常 SIGKILL

    我在 iPhone 模拟器中构建并运行一个项目 我通过按主页按钮将其发送到后台 然后我双击主页按钮在后台找到我的应用程序并点击它 它变得活跃并且应用程序继续运行 在这里 无论我重复多少次 我都没有问题 然后我通过点击应用程序图标上的红色小减
  • iPhone/Objective-C - 呈现视图和委托时的 UIDocumentInteractionController 类参考

    我在用UIDocumentInteractionController在我的应用程序中 以便在我的应用程序中呈现 Instagram 过滤器屏幕 如下所述 http instagram com developer iphone hooks h
  • 应用程序打开时处理推送通知

    我正在运行推送通知 有用 我收到通知并使用 application didReceiveRemoteNotification 获取传入数据 然后将用户发送到必要的屏幕 问题是 如果您正在使用该应用程序并收到通知 它会跳转到目标屏幕 而不会发
  • 如何将相机中的图像保存到 iPhone 图库中的特定文件夹?

    嘿 我是 iPhone 新手 最近我一直在尝试制作一个应用程序 基本上 我想要做的是 如果用户将从相机捕获任何图像 那么它应该保存在设备库中 我知道如何将照片保存在图库中 它对我有用 但我无法将所有捕获的图像保存到设备图库中的特定文件夹 例

随机推荐

  • 将 GitLab CI 变量写入文件

    我如何将 GitLab CI 变量写入配置文件 如下所示 test stage test script touch config json echo database DB NAME gt gt config json 变量无法解决 我总是
  • 如何在 Mac 10.8.3 上安装 qpdf?

    跑步时R CMD check在 Mac 构建服务器上的包上 我收到警告 qpdf is needed for checks on size reduction of PDFs 我似乎无法得到qpdf http sourceforge net
  • 自定义 SQL GROUP BY 子句

    我有一个非常定制的 SQL 查询 但在实现时遇到问题 我正在使用 SQL Server 2008 我在此查询中只有一张表 但我正在寻找非常具体的数据 该查询的要求是 对于每个不同的 PartNumber 列 我需要选择要选择的最新 最大 P
  • 如何让 LINQ 全外连接正常运行?

    我正在构建一个 WPF 应用程序来监视用户计算机上的目录 该应用程序从受监控的目录上传文件 然后将一些信息保存到 SQLite 数据库中 部分业务处理是对已经上传的文件不重新处理 对已经上传但自上次上传后发生变化的文件重新上传 我有两个构建
  • 在 C++ 中将值从 X 更改为 X 会导致数据争用吗?

    我有可处理具有不同布局的大数据块的代码 布局将决定哪些数据是固定的 哪些数据是不固定的 一旦数据被固定在一个块中 它通常就不会再改变 所以所有读取数据的代码总是会看到相同的数据 但是 其他服务可以在这些块中进行更改 只要它们确定没有代码将读
  • 如何扩展 Phaser 3 游戏及其资产以使其在智能手机和平板电脑上运行?

    我刚开始使用 Phaser 3 和 Apache C rdova 创建移动 Android 游戏 我创建了一个 1200 x 800 像素的游戏 它在平板电脑上看起来不错 但在智能手机上却不然 如何缩放它以适应多种屏幕尺寸 此外 我需要帮助
  • Sencha touch 2:在itemTpl中获取项目索引

    在XTemplate的文档中 可以使用 来获取当前数组索引 当我在 xlist 的 itemTpl 中使用它时 我总是得到 1 而不是索引 xtype list store myStore itemTpl new Ext XTemplate
  • 多个项目和一种解决方案有什么好处? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 this(...) 或 super(...) 之前“插入”代码?

    有没有办法在调用之前进行初步计算super or this 构造函数 考虑以下示例 public class Test private final int n private final int m private final int st
  • 使用 JUnit 5 并行执行测试用例

    是否可以与 JUnit 5 并行执行测试用例 我正在寻找类似的东西threadPoolSize and invocationCount from TestNG http testng org doc documentation main h
  • 为 string.Contains 构建表达式树[重复]

    这个问题在这里已经有答案了 我正在努力构建一个表达式树 以便我可以动态地对某些数据进行过滤 我已经想出了这个 但它失败了var lambda line foreach var rule in request Where Rules var
  • 是什么使 Bean 成为 CDI Bean?

    例如 在这个问题的最佳答案中 Java EE 6 javax annotation ManagedBean 与 javax inject Named 与 javax faces ManagedBean https stackoverflow
  • 空类构造函数(样式)

    什么是定义不需要任何构造函数参数的类的 Pythonic 方法 class MyClass class body 或者我们需要一个显式的构造函数吗 IE class MyClass def init pass class body 您的第一
  • 视频缩略图

    我正在开发一个人们可以提交视频链接的网站 然后我就嵌入它 但是 我想获取视频的缩略图而不将视频保存在我的服务器中 这样当我列出视频时 我可以使用缩略图而不是嵌入所有视频 我的服务使用 PHP 假设视频为 SWF 格式 或标签中是否有任何内容
  • CKEditor - 无工具栏

    所以我得到了一个textarea with CKEditor插件 但我只想让它干净 没有任何东西 没有工具栏 没有状态栏或任何栏 这很简单 但我在文档或网络上找不到它 My CKEditor开始于 texto ckeditor skin o
  • 升级到 Swift 3 后,属性“self.delegate”未在 super.init 调用中初始化

    升级到 Swift 3 后 我现在收到此错误 属性 self delegate 未在 super init 调用时初始化 在 NSObject 类上定义 open class NSObject NSObjectProtocol public
  • Android Oreo WebView 在第二次加载后渲染布局太小

    在某些 Android Oreo 设备上 当我第一次在 webview 上加载 url 时 URL 页面会正确加载 但是 当我再次加载 URL 时 页面会缩小 在低于 android oreo 的设备上 页面可以为所有设备正确加载 此外 当
  • VS2008 中“<<”和“++”的运算符优先级优化

    我遇到了一个奇怪的 VS2008 C 问题 看起来运算符优先级没有得到尊重 我的问题是这个的输出是什么 int i 0 std cout lt lt i 0 Not zero zero lt lt i lt lt std endl 通常情况
  • 如何在 WordPress 主题中包含 jQuery?

    我对 WordPress 还很陌生 我正在研究如何将 jQuery 包含到主题中 我将以下函数创建为函数 php theme function load java scripts Load FlexSlider JavaScript tha
  • 在选项卡栏开关上弹出到根导航控制器时出现问题

    尝试模仿 复制内置地址簿 特别是从 电话 应用程序内部编辑联系人或查看现有联系人信息时的行为 当您导航到另一个选项卡时 编辑状态将重置 并弹出 新联系人 或 信息 视图 以便当您返回 联系人 选项卡时 您将返回到根表视图 我使用 setEd