标签: segue

无需 Segue 在 UIViewController 之间移动

我有一个故事板,UIViewController上面有 8 个(并且还在增加)。我需要能够根据需要在任意一对之间移动。本质上,我想做的是模仿UITabBarController. 由于其中有很多,我不能只使用UITabBarController(这会立即解决我的问题),所以我使用带有UIPopoverController嵌入式的UITableView来允许用户选择他们的目的地。

当然,我可以在情节提要上创建 Segues,但是要设置我当前需要的所有 Segues,我必须为我现在拥有的视图控制器创建 56 个这样的 Segues,并且随着事情的发展,可能会创建更多 Segues 。

我的一个想法是创建一个“中心”视图控制器,除了将 Segues 保持到每个“真实”VC 并成为每个 VC 的代表之外,它实际上不做任何事情。然后,当我想要在 VC 之间切换时,我首先关闭视图控制器并将目标的 Segue 名称传递回集线器。然后,集线器可以立即执行该转场,这可以让我到达我想要的地方。我认为这会起作用,但似乎有点黑客。

有谁知道是否有更好的方法来实现这一目标?谢谢你!

objective-c uiviewcontroller ios segue

1
推荐指数
1
解决办法
660
查看次数

方向改变后 Unwind Segue 崩溃

我有一个 unwind segue,它在 iOS 9.3 上的横向或纵向都可以正常工作,但是如果我在呈现目标视图控制器 (A) 和执行展开 (C) 的视图控制器之间旋转设备,则会引发以下异常。

任何想法为什么会发生这种情况,以及如何解决这个问题?

我的故事板的高级视图:

在此处输入图片说明

例外:

2016-03-28 16:58:14.194 ClarityLife[96444:11508887] *** Assertion failure in -[_UIStoryboardUnwindChain initFromSourceViewController:toDestinationViewController:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.60.7/UIStoryboardUnwindSegueTemplate.m:119
2016-03-28 16:58:14.202 ClarityLife[96444:11508887] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not unwind from <ClarityLife.VideoCallDisconnectingViewController: 0x7fdaa07c2b50> to <ClarityLife.VideoCallIdleViewController: 0x7fdaa2c13ab0> because a common ancestor could not be found. (Note that it is not supported to unwind from a view controller to one of its descendants.)'
*** First throw call stack:
(
  0   CoreFoundation                      0x000000011128bd85 __exceptionPreprocess + …
Run Code Online (Sandbox Code Playgroud)

uisplitviewcontroller ios segue unwind-segue

1
推荐指数
1
解决办法
767
查看次数

转到没有segues的第二个viewController

在下面的代码中我有一个动作/按钮,当点击时带你到另一个viewController(SecondViewController),一切正常,但有一行我不完全理解的代码.

这行代码在做什么?

secondVC.delegate = self

我们在这里谈论的代表是什么?如果我只需要转到其他视图并且我没有传递任何数据,那真的需要吗?

@IBAction func goToView(sender: AnyObject) {  
    let secondVC= storyboard?.instantiateViewControllerWithIdentifier("secondViewController") as! SecondViewController  
    secondVC.delegate = self // is this needed?  
    self.presentViewController(secondVC, animated:true, completion:nil)  
} 
Run Code Online (Sandbox Code Playgroud)

delegates ios segue swift

1
推荐指数
1
解决办法
1616
查看次数

WatchKit 如何使用标识符执行特定的转场

我有一个按钮,它已经连接到 InterfaceBuilder 中以显示一个模态界面控制器。在某些情况下,我想以编程方式触发此转换,但我找不到在 Watchkit 中执行相同转场的方法。我知道您可以在 iphone/iOS 中执行此操作,但到目前为止我无法在 Watchkit 中找到它。

segue apple-watch watchkit

1
推荐指数
1
解决办法
1610
查看次数

从一个 UIButton 到同一个视图控制器或另一个创建多个 segue

我对 swift 还很陌生,所以请耐心等待。

现在我的问题可以分解为:

我有一个测试视图控制器,它可以通过显示描述和标题来显示我的“测试”对象。我也有一组 Test 对象。在右上角,有一个“跳过此测试”按钮,如果用户点击它,视图控制器将自动切换到自身,但更改正在显示的测试对象,例如它只是基本上循环遍历一个数组测试。我相应地更改了准备转场方法以通过视图控制器推送数据。

但是,如果我已经到达我的测试数组中的最后一个测试,我希望能够移动到一个完全不同的 ViewController(让我们称之为 FinalViewController)。

现在这是我无法修复的部分。

我想直接从“跳过测试”按钮创建一个转场,只是它根据特定条件转入不同的视图控制器。但是,当我尝试通过右键单击 Button 并将其拉到 FinalViewController 在 IB 中创建一个 segue 时,它​​删除了我之前为该按钮创建的 segue。

有谁知道是否有解决此问题的方法?谢谢你!!!!

uibutton uiviewcontroller ios segue swift

1
推荐指数
1
解决办法
2249
查看次数

弹出视图控制器、关闭视图控制器和使用展开转场之间有什么区别?

我想知道是否有人可以解释什么时候是使用 Segue 的理想时间以及弹出和关闭视图控制器与使用展开 Segue 之间有什么区别?

viewcontroller ios segue

1
推荐指数
1
解决办法
1275
查看次数

当文本框值等于 nil 时取消展开转场

如果文本框值等于 nil,我想取消展开转场。下面是当前的代码。我使用故事板连接保存按钮(将文本值保存到数据库中)。我正在考虑使用 poptorootviewcontroller 确保教科书在执行转场之前具有值。他们有什么方法可以用当前的代码来做到这一点吗?

mainView 内部的代码可以恢复到-

@IBAction func unwind(_ segue: UIStoryboardSegue){
    print("Back in TableView")

}
Run Code Online (Sandbox Code Playgroud)

childView 上的按钮执行 unwind segue-

 @IBAction func saveAddress(_ sender: UIButton) {
    // save values to dictionary save dictionary to firebase under user, uid, addresses
    // uialert controller if fields are not completed do not allow segue if fields are not complete
    // perform segue to addresstableview

    let addy1: String = address1Txt.text!
    let addy2: String = address2Txt.text!
    let aptNum: String = aptTxt.text!
    let city: String = cityTxt.text! …
Run Code Online (Sandbox Code Playgroud)

textbox ios segue swift unwind-segue

1
推荐指数
1
解决办法
491
查看次数

使用表格单元格内的按钮从原型单元格传递数据

我有动态填充原型单元的数据。它只会根据需要创建尽可能多的数据单元格。我遇到的问题是单击 UIButton 时将数据传递到详细视图。

每个动态单元格内都有一个 UIButton,按下该按钮时将传递选定到详细视图中的单元格内的任何数据。

将数据加载到表视图中没有问题,我只是无法正确传递值。

这是我的行单元格:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "part", for: indexPath) as! partsTableCell

    let part = partList[0]

    cell.a.text = String(part.a)
    cell.b.text = part.b
    cell.c.text = part.c
    cell.d.text = part.d
    cell.e.text = part.e
    cell.f.text = part.f

    self.tableView.rowHeight = 250
    cell.layer.borderColor = UIColor.darkGray.cgColor
    cell.layer.borderWidth = 1
    cell.layer.cornerRadius = 5
    cell.clipsToBounds = true
  //tried using tags, but no luck
    //cell.myButton.tag = indexPath.row

    return cell
}
Run Code Online (Sandbox Code Playgroud)

为了彻底起见,我为表格单元格设置了一个自定义类。

class partsTableCell: UITableViewCell …
Run Code Online (Sandbox Code Playgroud)

tableview ios segue swift

1
推荐指数
1
解决办法
172
查看次数

转场后页面视图大小不正确

我最近将我的 XCode 更新到了 11.0 版。自从旧项目的更新继续以来,行为一直很奇怪。当我以模态方式转到新页面时,该页面不会填满整个屏幕,而是看似悬停。

这是视图的图片:https : //imgur.com/dAxEr4q

我希望页面像升级前一样占据设备屏幕的整个长度。

在此先感谢您的帮助。

xcode uiviewcontroller ios segue swift

1
推荐指数
1
解决办法
615
查看次数

当向左滑动时我需要用什么来改变控制器?

我想创建一个触摸控件,我向左滑动,视图在分页模式下滚动(比如在照片应用中你在照片之间滑动)但是当前控制器中的视图没有进入,我想要一个新的控制器来用它自己的观点.我应该使用什么控件来构建类似的东西?

uiviewcontroller ios segue

0
推荐指数
1
解决办法
57
查看次数