导航并将字符串传递给嵌入在 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的主要内容,如果未能解决你的问题,请参考以下文章
如何获取嵌入在 PhantomJS 运行的 JS 的 HTML 页面结果中的 JSON 对象并将它们传递给 java 代码?
Flutter 自定义 AppBar 动作并将 Appbar 和 Body 一起传递给父级?