• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 用户执行操作后切换到不同选项卡中的 View Controller

[复制链接]
菜鸟教程小白 发表于 2022-12-13 02:22:07 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在处理的应用程序中有以下 Storyboard :

View of my storyboard

在根目录下,我有一个标签栏 Controller 。它链接到两个 View Controller 。

第一个显示用户上传图片的新闻源的 View Controller ( Storyboard底部的那个)。

第二个 View Controller 用于启动拍照并附加一些数据。在最后一步(右上角)中,当触摸导航栏右侧项目中的“保存”时,我希望用户被重定向到新闻源 View Controller ,并传递一些数据。

我尝试使用 segue,它可以工作。数据被传递到新闻源,但选择了错误的选项卡。我使用

更改了选定的选项卡
[self.tabBarController setSelectedIndex:0];

但是再次点击第二个标签,事情就搞砸了。我可以看到新闻源而不是拍照屏幕。如果我再次点击,它会崩溃。

在某些时候,我认为我可能得到了错误的 Storyboard,应该在我的新闻源中实现一个 TabBar 并将拍照作为模态视图处理。

您知道实现此目的的任何干净方法吗?

谢谢



Best Answer-推荐答案


您不应该使用普通的转场,它将目标 Controller 添加到堆栈中。做你想做的最好的方法应该是使用 unwind segue。这是您需要做的粗略草图:

• 在 NewsfeedController 中声明一个展开转场 Action ,例如 (IBAction)unwindFromPictureSavedUIStoryboardSegue *)segue;
• 将SavingPictureController 中的“保存”按钮连接到 Storyboard 中的“退出”图标,然后选择之前定义的方法;
• 在新创建的展开 segue 中,使用 SavedPictureSegue;
之类的内容定义其标识符 • 定义要在SavingPictureController 的 header 中传递的数据,例如@property (strong, readonly, nonatomic) id passData;
• 在SavingPictureController 中实现

-(void)prepareForSegueUIStoryboardSegue *)segue
{
    if ([segue.identifier isEqualToString"SavedPictureSegue"]) {
        _passedData = // Your data here
    }
}

• 现在,在 NewsfeedController 中实现之前定义的方法并从 (SavingPictureController *)segue.sourceController 获取数据。请务必#import "SavingPictureController.h"

关于ios - 用户执行操作后切换到不同选项卡中的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26125007/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap