Does anyone know what the new Exit icon is used fo

2019-01-10 03:53发布

Right-clicking the Exit icon yields an empty window. Can't Ctrl-drag a connection to any IB elements or corresponding source files. Docs give no love. Doesn't appear in nib files, only storyboards. My assumption is that it's a corollary to segues, but I don't see any new methods to back it up. Anyone?

3条回答
姐就是有狂的资本
2楼-- · 2019-01-10 04:18

As addition to Eric answer here is how it works with :

The function you add to the destination controller looks like:

@IBAction func backFromOtherController(segue: UIStoryboardSegue) {
    NSLog("I'm back from other controller!")
}
查看更多
孤傲高冷的网名
3楼-- · 2019-01-10 04:22

I had a hard time following the accepted answer so here is more detail.

Given the photo below on view controller C you can "exit" back to any view controller in the segue path.

enter image description here

ViewController A you can write:

- (IBAction)done:(UIStoryboardSegue *)segue {
    // Optional place to read data from closing controller
}

ViewController B you can write:

- (IBAction)back:(UIStoryboardSegue *)segue {
    // Optional place to read data from closing controller
}

ViewController C you control drag from "back" button to the green exit option and select back: ViewController C you control drag from "done" button to the green exit option and select done: enter image description here

Note: Even though the methods are on other view controllers they show up for the ViewController C's exit. Control dragging and selecting a method defines which ViewController to unwind to.

查看更多
Bombasti
4楼-- · 2019-01-10 04:31

There's a lot of information in the WWDC video "Session 407 - Adopting Storyboards in your App."

Say you have two view controllers linked by a segue. Implement the following exit action on the first view controller:

- (IBAction)done:(UIStoryboardSegue *)segue {
    NSLog(@"Popping back to this view controller!");
    // reset UI elements etc here
}

Then, on Storyboard scene for the second view controller, Ctrl-drag from a UI element, such as a button, to the exit icon at the bottom of this view controller. The done: action you added to the code of the first controller will appear as an option. Now, activating the button you Ctrl-dragged to the exit icon will pop back to the first view controller and maintain its original state (ie UI elements such as text input supposedly still intact).

查看更多
登录 后发表回答