导航并将字符串传递给嵌入在 TabVC 和 NavigationVC 中的另一个 VC

Posted

技术标签:

【中文标题】导航并将字符串传递给嵌入在 TabVC 和 NavigationVC 中的另一个 VC【英文标题】:Navigate and pass the string to another VC embedded in a TabVC and NavigationVC 【发布时间】:2018-03-08 01:14:22 【问题描述】:

我有以下情节提要。

我希望将一个字符串说 sURL 传递给 Classes VC。类 VC 嵌入在选项卡视图控制器和导航控制器中。非常感谢您的帮助。

【问题讨论】:

您可以使用自定义委托或通知中心与视图控制器进行通信 你能给我举个例子吗,指向另一个视图控制器怎么样?是不是像这样 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; UITabBarController *tabView = [storyboard instantiateViewControllerWithIdentifier:@"profileView"]; [self presentViewController:tabView 动画:YES 完成:nil];但是配置文件视图是我的 TabView 控制器的初始设置,我如何定向到 Classes VC? 自定义委托:***.com/a/12660523/1142743。 notificationcenter : ***.com/a/2191802/1142743 或使用 UserDefaults 存储值,这是最简单的方式 我想我知道了,稍后会发布解决方案,谢谢 Vinodh,我只需要命名我的故事板。 好的,您可以发布自己的解决方案 【参考方案1】:

存储您想要传递到 NSDefaults 的任何字符串,然后在另一个 VC 处再次调用 NSDefaults。

//=== Strore into session and send over to Classes VC
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:sURLToClass forKey:@"txtURLFromSearch"];
[defaults synchronize];

//=== This is to call Classes VC
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UITabBarController *tabView = [storyboard instantiateViewControllerWithIdentifier:@"profileView"];
tabView.selectedIndex=0; //=== This is to choose which Tab, starts with 0,1,2,3,4
[self presentViewController:tabView animated:YES completion:nil];

【讨论】:

不要使用-[NSUserDefaults synchronize]。来自Apple's documentation“这个方法是不必要的,不应该使用。”

以上是关于导航并将字符串传递给嵌入在 TabVC 和 NavigationVC 中的另一个 VC的主要内容,如果未能解决你的问题,请参考以下文章

bootstrap中导航导航栏表单及自定义表单

如何获取嵌入在 PhantomJS 运行的 JS 的 HTML 页面结果中的 JSON 对象并将它们传递给 java 代码?

如何在我的导航栏中移动“导航栏品牌”下的“导航”元素

Flutter 自定义 AppBar 动作并将 Appbar 和 Body 一起传递给父级?

将 UIWebView 上的 ScreenEdgePanGesture 传递给父 PageViewController

将 C# 字符串传递给 C++,并将 C++ 结果(字符串、char*.. 任何)传递给 C#