
我有一个标签栏控制器,它是初始视图控制器,PFLoginViewController如果用户没有登录,它也有一个小工具.登录/注册流程正常.
这两个标签是1.a UICollectionView,我IntroVC将从现在开始参考2. UITableView我将称之为FeedVC
当用户点击照片时IntroVC,会触发显示segue(通过prepareForSegue),显示第3个屏幕(UIView),这在技术上不是标签.我SelectVC将从现在开始称之为.
注意:所有这些屏幕也嵌入(ded)在导航控制器中.
所述SelectVC显示相片,并有一个UIButton,用户可以按下触发一个显示赛格瑞身心SEGUE到图像推入FeedVC.我创建Unwind segue的原因是因为没有它,图像会进入FeedVC(第二个选项卡),但第一个选项卡仍然会突出显示.
我用Unwind segue解决了这个问题,但是我注意到我遇到了一个问题,在选择之后,当我按下第一个选项卡(Intro VC)时,导航栏有一个后退按钮,我使用SelectVC按钮推的次数越多图像,我必须按回的次数越多IntroVC.我对如何解决这个问题感到非常困惑.很明显,我没有正确地连接流程,而且似乎IntroVC是多次生成?
当我在模拟器中浏览segues时,我在控制台中收到以下消息:
Nested pop animation can result in corrupted navigation bar
Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
相关代码如下.
IntroVC.swift
@IBAction func unwindToIntroView(segue: UIStoryboardSegue) {
self.tabBarController!.selectedIndex = 1
override func prepareForSegue(segue: …Run Code Online (Sandbox Code Playgroud) 我的应用程序有三个与tabBar三个tab关联的viewController.我想从第一个选项卡切换到第三个选项卡,并将一些数据从第一个视图控制器传递到第三个视图控制器.我不能用segue来做,因为segue在所选标签内创建导航.那不是我的要求.我想在tabBar中切换选项卡并传递一些数据而不进行任何导航.我该怎么做 ?
我正在使用:XCode 8.2,Swift 3.0,iOS 10.2,iPhone7。我有一个Tab Bar Controller孩子View Controllers。
我试图将数据从一个视图控制器发送到另一个。
我已经在这里和这里查看了如何执行此操作,但是第一个链接并不是我想要的,因为他谈论的是Storyboard segue,这似乎与在选项卡之间移动时使用的segue类型不同。
我尝试在其中发送数据的标签:
protocol SendResultsDelegate {
func sendResults(data: String)
}
class SendingVC {
....
if delegate != nil {
let data = // some string here
delegate?.sendResults(data: data!)
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试在其中接收数据并打印出来的标签:
import UIKit
class ResultsViewController: UIViewController, SendResultsDelegate {
@IBOutlet weak var resultsTextField: UITextView!
func sendResults(data: String) {
resultsTextField.text = data
}
}
Run Code Online (Sandbox Code Playgroud)
而且我不确定这是否正确,但是...我的Tab Bar Controller也有一个自定义类:
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) { …Run Code Online (Sandbox Code Playgroud)