如果 selectedSegmentIndex 不同,则不同 ViewController
Different ViewController if different selectedSegmentIndex
我的密码是
@IBAction func pressedButton(_ sender: Any) {
self.resignFirstResponder()
if mySegment.selectedSegmentIndex == 0 {
这里我需要如果我在 ViewControllerA 上选择了 Segment #0(然后按下我的按钮)然后转到 ViewControllerB,如果 Segment # 1 然后 ViewControllerC,如果段 #2 然后 ViewControllerD.
可能吗?
是的,如果你使用 UINavigationController
或 present
,你可以在 IB 中为他们设置 id 并推送
if mySegment.selectedSegmentIndex == 0 {
let so = self.storyboard?.instantiateViewController(withIdentifier: "AID")
self.navigationController?.pushViewController(so!, animated: true)
}
else if mySegment.selectedSegmentIndex == 1 {
let so = self.storyboard?.instantiateViewController(withIdentifier: "BID")
self.navigationController?.pushViewController(so!, animated: true)
}
Swift:
if(sender.selectedSegmentIndex==0)
{
let lvc = self.storyboard?.instantiateViewController(withIdentifier: "cellVC") as! YourViewController1
self.navigationController?.pushViewController(lvc!, animated: true)
}
else
{
let vc = self.storyboard?.instantiateViewController(withIdentifier: "cellVC1") as! YourViewController2
self.navigationController?.pushViewController(vc!, animated: true)
}
对象:
if(sender.selectedSegmentIndex==0)
{
viewcontroller1 *yourView1=[[viewcontroller alloc]init];
[self.navigationController pushViewController:yourView1 animated:YES];
}
else
{
viewcontroller2 *yourView2=[[viewcontroller2 alloc]init];
[self.navigationController pushViewController:yourView2 animated:YES];
}
您应该为通用解决方案创建枚举,而不是使用 if else 条件。
像这样创建 ViewController 的枚举,
enum CurrentViewController : Int {
case ViewControllerB
case ViewControllerC
case ViewControllerD
var description : String {
switch self {
case .ViewControllerB: return "ViewControllerB"
case .ViewControllerC: return "ViewControllerC"
case .ViewControllerD: return "ViewControllerD"
}
}
}
现在转到合适的控制器,你可以这样做,
let currentViewController = CurrentViewController(rawValue: mySegment.selectedSegmentIndex)
let viewController = self.storyboard?.instantiateViewController(withIdentifier: (currentViewController?.description)!)
self.navigationController?.pushViewController(viewController!, animated: true)
以上是适用于所有人的通用解决方案。如有任何疑问,请告诉我。
首先为每个 viewController 连接一个 segue。 control-从 ViewControllerA
顶部的 viewController 图标拖动到另一个 ViewController
和 select segue 类型。
单击 viewController 之间的 segue 箭头,并在 Attributes Inspector[=45] 中设置其 identifier =]右边.
- 为每个
ViewControllerB
、ViewControllerC
和 ViewControllerD
重复第 1 步和第 2 步,为其提供唯一的 id,例如 "segueToB"
、"segueToC"
和 "segueToD"
.
在您的按钮代码中,执行以下操作:
let idx = mySegment.selectedSegmentIndex
let segueID = ["segueToB", "segueToC", "segueToD"][idx]
self.performSegue(withIdentifier: segueID, sender: self)
连接两个segue的Demo:
可以 ,只需设置 StoryBoard
中 ViewController 的 id
if mySegment.selectedSegmentIndex == 0 {
let vcB = self.storyboard?.instantiateViewController(withIdentifier: "VCB")
self.navigationController?.pushViewController(vcB, animated: true)
}else if mySegment.selectedSegmentIndex == 1 {
let vcC = self.storyboard?.instantiateViewController(withIdentifier: "VCB")
self.navigationController?.pushViewController(vcC, animated: true)
}else if mySegment.selectedSegmentIndex == 2 {
let vcD = self.storyboard?.instantiateViewController(withIdentifier: "VCD")
self.navigationController?.pushViewController(vcD, animated: true)
}
我的密码是
@IBAction func pressedButton(_ sender: Any) {
self.resignFirstResponder()
if mySegment.selectedSegmentIndex == 0 {
这里我需要如果我在 ViewControllerA 上选择了 Segment #0(然后按下我的按钮)然后转到 ViewControllerB,如果 Segment # 1 然后 ViewControllerC,如果段 #2 然后 ViewControllerD.
可能吗?
是的,如果你使用 UINavigationController
或 present
if mySegment.selectedSegmentIndex == 0 {
let so = self.storyboard?.instantiateViewController(withIdentifier: "AID")
self.navigationController?.pushViewController(so!, animated: true)
}
else if mySegment.selectedSegmentIndex == 1 {
let so = self.storyboard?.instantiateViewController(withIdentifier: "BID")
self.navigationController?.pushViewController(so!, animated: true)
}
Swift:
if(sender.selectedSegmentIndex==0)
{
let lvc = self.storyboard?.instantiateViewController(withIdentifier: "cellVC") as! YourViewController1
self.navigationController?.pushViewController(lvc!, animated: true)
}
else
{
let vc = self.storyboard?.instantiateViewController(withIdentifier: "cellVC1") as! YourViewController2
self.navigationController?.pushViewController(vc!, animated: true)
}
对象:
if(sender.selectedSegmentIndex==0)
{
viewcontroller1 *yourView1=[[viewcontroller alloc]init];
[self.navigationController pushViewController:yourView1 animated:YES];
}
else
{
viewcontroller2 *yourView2=[[viewcontroller2 alloc]init];
[self.navigationController pushViewController:yourView2 animated:YES];
}
您应该为通用解决方案创建枚举,而不是使用 if else 条件。
像这样创建 ViewController 的枚举,
enum CurrentViewController : Int {
case ViewControllerB
case ViewControllerC
case ViewControllerD
var description : String {
switch self {
case .ViewControllerB: return "ViewControllerB"
case .ViewControllerC: return "ViewControllerC"
case .ViewControllerD: return "ViewControllerD"
}
}
}
现在转到合适的控制器,你可以这样做,
let currentViewController = CurrentViewController(rawValue: mySegment.selectedSegmentIndex)
let viewController = self.storyboard?.instantiateViewController(withIdentifier: (currentViewController?.description)!)
self.navigationController?.pushViewController(viewController!, animated: true)
以上是适用于所有人的通用解决方案。如有任何疑问,请告诉我。
首先为每个 viewController 连接一个 segue。 control-从
ViewControllerA
顶部的 viewController 图标拖动到另一个ViewController
和 select segue 类型。单击 viewController 之间的 segue 箭头,并在 Attributes Inspector[=45] 中设置其 identifier =]右边.
- 为每个
ViewControllerB
、ViewControllerC
和ViewControllerD
重复第 1 步和第 2 步,为其提供唯一的 id,例如"segueToB"
、"segueToC"
和"segueToD"
. 在您的按钮代码中,执行以下操作:
let idx = mySegment.selectedSegmentIndex let segueID = ["segueToB", "segueToC", "segueToD"][idx] self.performSegue(withIdentifier: segueID, sender: self)
连接两个segue的Demo:
可以 ,只需设置 StoryBoard
中 ViewController 的 idif mySegment.selectedSegmentIndex == 0 {
let vcB = self.storyboard?.instantiateViewController(withIdentifier: "VCB")
self.navigationController?.pushViewController(vcB, animated: true)
}else if mySegment.selectedSegmentIndex == 1 {
let vcC = self.storyboard?.instantiateViewController(withIdentifier: "VCB")
self.navigationController?.pushViewController(vcC, animated: true)
}else if mySegment.selectedSegmentIndex == 2 {
let vcD = self.storyboard?.instantiateViewController(withIdentifier: "VCD")
self.navigationController?.pushViewController(vcD, animated: true)
}