我有一个表格视图中的效果列表。我创建了一个右上角的栏按钮,它可以向另一个视图控制器推送序列,这有助于创建一个新效果。现在我想将推送序列添加到表格视图单元格中,这样效果值就可以加载到添加效果视图控制器中,我可以保存编辑后的值。
问题是我可以以编程方式创建推送 segue 吗?如果不是,我可以通过准备预演传递效果吗
?如果我尝试使用准备前推器
,我会遇到一个问题,即从 UITableView
拖动控件不允许我创建一个推送到添加效果视图控制器的 segue。
这是另一个不需要使用didSelectRowAtIndexPath的选项。
您只需在Interface Builder中连接从原型单元到目标的序列。
从那里你可以简单地:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "AffiliationDetail", let destination = segue.destinationViewController as? AffiliateDetailViewController {
if let cell = sender as? UITableViewCell, let indexPath = tableView.indexPathForCell(cell) {
var affiliation = affiliations[indexPath.row]
destination.affiliation = affiliation
}
}
}
这个答案显示了如何传递数据,并针对 Xcode 8 和 Swift 3 进行了更新。
以下是设置项目的方法。
表视图
创建项目。有关一个简单的示例,请参阅此处。视图控制器
。第一个带TableView的视图控制器:
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
// ...
// method to run when table view cell is tapped
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// Segue to the second view controller
self.performSegue(withIdentifier: "yourSegue", sender: self)
}
// This function is called before the segue
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// get a reference to the second view controller
let secondViewController = segue.destination as! SecondViewController
// set a variable in the second view controller with the data to pass
secondViewController.receivedData = "hello"
}
}
第二视图控制器
class SecondViewController: UIViewController {
@IBOutlet weak var label: UILabel!
// This variable will hold the data being passed from the First View Controller
var receivedData = ""
override func viewDidLoad() {
super.viewDidLoad()
print(receivedData)
}
}
关于在视图控制器之间传递数据的更基本的例子,请看这个答案。
控件从视图控制器拖到视图控制器
您需要为 segue 提供一个标识符:
执行后续操作:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"yourSegue" sender:self];
}
现在是这样的,如果您需要将一些数据传递给视图控制器,这将只执行分段。然后,您必须实现以下分段委托:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"yourSegue"])
{
//if you need to pass data to the next controller do it here
}
}
我想在选择另一个select元素的一个选项时显示一个select元素,在选择另一个选项时隐藏它。 这是JavaScript: 感谢任何帮助。谢谢
问题内容: 有没有比以下更有效的方法: 问题答案: 在查询中使用PARTITION(partitionN)语法应该非常少见。 通常,您只想为分区键指定值,并允许Oracle执行分区消除。例如,如果您的表每天根据TRANSACTION_DATE进行分区 将从今天的分区,昨天的分区和前一天的分区中选择所有数据。
问题内容: 动机 假设我们有一个如下所示的类加载层次结构: 假设Classloader用于加载类。它检查类加载器是否可以加载它,再次检查类加载器是否可以加载它。由于两者都不能,所以由classloader加载。 任何依赖的类都是一样的。我相信我了解这一过程。 题 我不明白为什么会尝试首先加载。在Java应用程序中如何选择当前的类加载器? 问题答案: 如您所知,默认情况下,Java使用引导类加载器和
问题内容: 我正在努力 但是,如果其中一个表为空,它将不返回任何内容。我如何使它返回“ a”,即使另一个为空? 问题答案: 在子句中使用两个表在功能上等效于: 这将为B中的每一行返回A行。当B为空时,结果也为空。您可以使用来解决此问题。使用,即使其中一个表为空,也可以返回行。例如: 由于该条件始终为真,因此这就像一个条件,除了它也适用于空表。
我怎样才能使一个字母出现在日历上,而不是两个,例如MO我想成为M。我已经尝试过使用周末短,使三个字母"MON",有人知道如何使"M"
问题内容: 我对CSS选择器有疑问。仅当在具有类名的a中时,如何选择具有特定类名的a ?这个CSS类在其他地方使用,我不想在任何地方更改样式。 问题答案: 只需在父元素和后代元素之间使用CSS后代选择器(空格)即可: 在这种情况下,仅适用于Class的规则,前提是其祖先是该Class的规则。相反,您可以使用直接子组合器,但是您必须指定与每个父/祖先的关系,直到需要其类的父子/祖先,这可能很难维护C