标签: segue

如何切换回已经加载的UIViewController?

我在故事板上有一个视图,它有一个按钮来执行某个动作.但是,要执行此操作,用户必须登录.按钮处理程序将测试用户是否已登录并在是(YES)时执行一个segue,如果为NO则执行另一个segue.NO segues推送到登录视图控制器.还有另一个segue连接回第一个视图控制器,因此如果登录成功,用户可以从中断的地方继续.视图控制器嵌入在导航控制器中.

问题是,'return'segue正在加载视图控制器的一个全新实例,而不是引用原始实例,因此我最终得到了空接口元素和内存中该视图控制器的2个副本.

如何返回视图控制器的原始实例?

objective-c storyboard ios segue

47
推荐指数
3
解决办法
8万
查看次数

ContainerView具有多个嵌入segues

有没有办法让一个ContainerView具有多个嵌入段?目的是让ContainerView根据按下的按钮保持几个不同的ViewControllers; 一次只能看到一个.我想使用嵌入segues,这样在Interface Builder中,故事板会自动显示与ContainerView相同的大小.

我意识到我可以手动调整InterfaceBuilder中的其他ViewControllers,但我想要嵌入segue提供的自动调整大小.如果可以采用另一种方式,那也没关系.没有在viewDidLoad上加载视图很好 - 如前所述,显示的ViewController可以根据按下的按钮进行更改.

objective-c ios segue ios6

45
推荐指数
4
解决办法
3万
查看次数

当segue是模态时,performSegueWithIdentifier非常慢

我有一个简单的表视图,我在表视图上处理select操作.这个动作遵循一个segue.

如果segue是pushsegue,则立即显示下一个视图.如果segue是modalsegue,则下一个视图:

  • 需要6秒左右才能显示
  • 如果我再次点击(第二次点击)立即显示

我试着四处寻找一些想法,但似乎没有一个适用于我的情况.特别是:

  • 我正在主UI线程上执行segue
  • 我的观点非常简单(所以没有问题viewDidLoad).此外,当segue push表示加载目标视图时没有问题,它显示在瞬时附近
  • 我试过传递nilsender; 同样的效果.

有没有人对此有任何想法?

objective-c ios segue swift

45
推荐指数
2
解决办法
1万
查看次数

调用performSeguewithIdentifier并不会调用shouldperformseguewithIdentifier

我有两个视图控制器.在视图controller1上我有以下内容:

  • 带我到viewcontroller2的segue - 这个segue被命名为"showme"并附加到viewcontroller
  • UIButton的IBAction

在我的代码中,我有按钮按下操作的以下内容

@IBAction func buttonPress(sender: AnyObject) {
    println("button pressed")
        performSegueWithIdentifier("showme", sender: self)
}
Run Code Online (Sandbox Code Playgroud)

我也有以下方法:

override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool {
    println("Should performing....")
    return true
}   
Run Code Online (Sandbox Code Playgroud)

由于某种原因,永远不会调用shouldPerformSegueWithIdentifier函数.但是,如果我直接在UIButton上将segue添加到ViewController2中.

我已经确认在我的按钮动作中调用它的方向是有效的(见下文),但这不是我理解的工作方式.prepareforSegue也是如此.

@IBAction func buttonPress(sender: AnyObject) {
    println("button pressed")
    if (shouldPerformSegueWithIdentifier("showme", sender: self)){
        performSegueWithIdentifier("showme", sender: self)}
} 
Run Code Online (Sandbox Code Playgroud)

ios segue swift

43
推荐指数
2
解决办法
1万
查看次数

iOS Segue - 从左到右 -

我已经阅读了有关segues的其他帖子但没有解决我的问题.

简单地说,我ViewController的订单就像一本书.我希望向后过渡(例如:从第9页到第8页)始终从左到右呈现(滑过).我希望从右到左呈现前向过渡(从第9页到第10页).

是的,如果您逐页翻页,我的导航控制器后退按钮(左上角)会显示如下内容.但是,如果从索引中跳转,则导航控制器上的后退功能会将您带回索引.

我的目标是,如果用户从索引跳到第9页(例如),然后向右滑动,它将向右滑动页面并显示第8页.一旦在第8页,如果他们向左轻弹页面将向左轻弹,他们将再次出现在第9页.

ViewController默认情况下,我所有人都是从右到左滑动.

示例:将其想象成一本书,如果我使用索引跳到第4章,然后向右滑动并从堆栈中弹出一个视图,我将回到索引.但是,如果您使用第394章第4章并向右滑动,则不希望返回索引!您想要转到第393页第3章的最后一页!因此导航堆栈对我没有帮助.

结束例子

详细信息:1.我在按钮上使用新的Xcode"Show"在ViewControllers之间切换.

  1. 我正在使用导航控制器,左上角的"后退"按钮功能.这使用导航堆栈并且工作正常.

  2. 但是我在底部有自己的自定义导航栏(后退按钮,主页按钮,索引按钮,前进按钮)和手势.这些是我想要的书籍功能.

  3. 快速编码.

  4. 使用Xcode 6.3

我读过有动画代码.我已经阅读了可以使用的深度程序转换.只是选择我想要从左边呈现的segue并轻松地反转动画,这似乎很疯狂.

谢谢!

尝试记录:

I tried DCDC's code:
    UIView.transitionWithView(self.window!, duration: 0.5, options:.TransitionFlipFromLeft, animations: { () -> Void in
            self.window!.rootViewController = mainVC
            }, completion:nil)
Run Code Online (Sandbox Code Playgroud)

当我将DCDC的代码插入到IBAction我的后滑动中时,会返回此错误

当我将DCDC的代码插入IBAction进行反刷时,会返回此错误

uiviewanimation ios segue swift xcode6

40
推荐指数
3
解决办法
5万
查看次数

停止segue并显示警报

使用iOS 5故事板,在我执行segue的按钮上,我想要的是在我的文本字段上进行验证,如果验证失败,我必须停止segue并发出警报.这样做的方法是什么?

iphone ios ios5 segue uistoryboardsegue

39
推荐指数
2
解决办法
3万
查看次数

使用Swift与Segue一起发送数据

我有两个视图控制器和两个视图.在我的第一个视图中,我将变量'currentUser'设置为false.我需要能够在第二个视图控制器中将'currentUser'设置为true.

当尝试从第二个视图引用'currentUser'时,由于在第一个视图控制器中定义了'currentUser',因此它不会将其拾取.

如何使用segue传递变量?

ios segue swift

36
推荐指数
2
解决办法
4万
查看次数

通过navigationController通过segue传递数据

我正在尝试将数据从一个viewController推送到另一个.我已将viewController连接到另一个ViewController的navigationController,然后将标识符设置为"showItemSegue".我在这两行中出错:

var detailController = segue.destinationViewController as ShowItemViewController
detailController.currentId = nextId!
Run Code Online (Sandbox Code Playgroud)

图示:

在此输入图像描述

代码:

override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {


    nextId = itemArray?.objectAtIndex(indexPath.row).objectForKey("objectId") as? NSString

    self.performSegueWithIdentifier("showItemSegue", sender: self)

}


override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {

    if (segue.identifier == "showItemSegue") {
        var detailController = segue.destinationViewController as ShowItemViewController
        detailController.currentId = nextId!
    }

}
Run Code Online (Sandbox Code Playgroud)

storyboard ios segue swift

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

使用包含另一个视图的Navigation Controller在segue中设置属性

我试图在我的segue中设置一个属性时遇到了崩溃.这是一个UIView将属性传递给一个导航控制器,它有一个TableView作为它的根视图.它应该转到我的TableViewController,但它看起来像是被NavigationController截获并抛出一个无法识别的选择器错误.

Segue公司:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showItems"]) {
        ShowItemsTableViewController *destinationViewController = [segue destinationViewController];

        [destinationViewController setItems:[self itemsFromCoreData]];
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

-[UINavigationController setItems:]: unrecognized selector sent to instance 0x10920c840

这里发生了什么?NavigationController没有与之关联的类,它只是在故事板中并以模态方式出现.如果我将故事板中的segue设置为直接转到视图而不是NavigationController,它可以工作,但我真的需要导航那里.我该如何解决这个问题?

objective-c uinavigationcontroller ios segue

34
推荐指数
3
解决办法
2万
查看次数

使用导航后退按钮展开segue

我已经通过展开segues部分观看了故事板实现的苹果演示视频,并在主视图上使用自定义按钮观看了演示.这很好.

我也看到了同样的事情的一个很好的例子也有效.http://www.techotopia.com/index.php/Using_Xcode_Storyboarding_%28iOS_6%29#Unwinding_Storyboard_Segues

但是,我希望有一个正常的推送segue从父(带有主窗体数据)传递到子(具有高级设置选项),然后使用导航栏中的后退按钮返回到父视图控制器,而不是使用自定义按钮视图中显示的视图.然后,当按下父控制器上的另一个保存按钮时,父控制器将所有内容保存到API服务器.

我似乎无法覆盖导航后退按钮将其指向我的展开segue动作,因为后退按钮没有出现在故事​​板上,我无法将绿色的"退出"按钮拖到它上面

我在viewDidLoad中尝试过这个来覆盖动作,但它没有用[self.navigationItem.backBarButtonItem setAction:@selector(unwindSegueAction :)];

是否可以使用后退按钮展开推送segue?

到目前为止我最好的想法是覆盖viewDidLoad方法中的后退按钮,但这会删除成角度的后退按钮样式,对于一个简单的问题看起来似乎是一个粗略的黑客

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStyleBordered target:self action:@selector(unwindSegue:)];
Run Code Online (Sandbox Code Playgroud)

我知道有使用协议和委托的答案,但我有兴趣使用Xcode4.5展开segue方法

xcode storyboard segue

31
推荐指数
3
解决办法
2万
查看次数