I'm trying to implement a segue from one a table view controller to another using storyboard.
I created a push segue from the source tableview cell to my destination table view controller in storyboard, and gave it an identifier.
When I touch a cell in the source tableview, prepareForSegue is called, but the segue never occurs. However, if I change it to a modal segue it works.
Any ideas how I can debug this to find out why it is failing? There's nothing in the debug log...
That explains it. 'Push' is specific to navigation controllers. The following is taken from the Glossary section of the iOS documentation:
"push segue A segue whose transition effect pushes the new view controller onto a navigation stack of a navigation controller."
Related
I'm seeing this warning in a project with regard to storyboard:
warning: Unsupported Configuration: Segues initiated directly from view controllers must have an identifier.
Segues initiated directly from view controllers must have an identifier.
Ideas on how to know specifically which segues?
Open Storyboard
Search for push segue to or segue to in bottom of search area like image attached
Hope it helps.
I'm sure I'm asking a simple question but I've only just started coding... so take pity on me!
I'm trying to figure out how to connect buttons (actions) to the viewController.swift from a modal/popover segue (I think the solution is the class but whenever I change it I get an error).
Eg.
In the storyboard, on the viewController interface, I have a button for sharing files. When I click it, a popover segue appears with two buttons on it, one for Fb one for Twitter, but I can't connect any actions from them to the viewController.swift
In another project I made a Google+ login and connected it to a modal segue but I couldn't make that work either.
Is segue the wrong thing to use?
Thanks for your help!
Marie
Your question would be easier to answer if you'd provide the actual error you're getting when you try to change the class.
It sounds like you're trying to connect the popover's buttons to actions in the presenting view controller (that is, the view controller that presented the popover), rather than the view controller of the popover itself. If that's the case, then that's the problem. You can only connect your buttons directly to actions available in the current scene.
This means you need a custom class for the presenting view controller (the one with the button that segues to the popover controller) and one for your popover. Set each scene view controller's classes to the appropriate custom classes you created (which must be a subclass of NSViewController or one of its subclasses or you won't be able to set the class name in IB) and you should be able to drag connections.
Whenever I add a Navigation controller to the xcode storyboard there is a tableviewcontroller added with a "relation" connecting the two and I don't want a tableviewcontroller, I want a regular viewcontroller. How do I get that? I am trying to reproduce the following Apple PhotoPicker sample in a storyboard.
Easy:
Drag a ViewController onto the storyboard, then click "editor" and "embed in". Choose NavigationController.
Done.
When opening up a project today, there is some weird behavior in XCode. Things have disappeared in the storyboard view like the NavigationBar in viewController, the buttons associated with it, etc. I can see in the Scene list that they still exist. Is there any way to have these show up again?
You probably need to add a navigation controller to your storyboard and make your view controller the root. You cannot simply set the top bar in simulated metrics in storyboard to navigation bar.
I'm trying to make the segue between a button created by coding and a view created in storyboard?
(the button is not in the storyboard, it's made inside the viewcontroller .m class)
please help if you know the solution
thanks,
If the current view controller (the one that owns the button) came from the storyboard, you can just use the performSegueWithIdentifier:sender: method of UIViewController, like this:
[self performSegueWithIdentifier:#"mySegue" sender:sender];