I've built a storyboard with multiple ViewControllers for my Xamarin.iOS application to set a foundation for my application (mainly showing tables, overviews and detail-views). I'm using segues and I invoke the PerformSegue(...) method to push a new ViewController to the stack. This works properly, and honestly I like the navigation system very much.
I am running into a problem that seems easy to fix at first sight, but after spending half a day I couldn't for the life of me find out what approach I should take:
My navigation is set up like this:
(1) Menu page (tableview) -> segue -> (2) BarcodeScanner -> segue -> (3) Detail page
I want the user to be able to navigate from (3) Detail page back to (1) Menu page. This includes not seeing the (2) "Barcode scanner" title but the (1) "Menu" Title in the "back button" text on the (3) Detail page. I want it to be skipped.
In Windows Phone and Android projects I would just clear the 'backstack' or pop an entry from the navigation stack, but in iOS this seems to work differently. Am I overseeing a simple solution for this, or does something so trivial require more work than I thought?
(Note: I'm not using Xamarin Forms)
Related
Forgive but I haven't coded in about a year or two, so I haven't been following the latest update in Xcode.
Anyways, I decided to go back and brush up on some skills and I noticed right off the bat that a lot has changed.
I created a new project using the tabbed view controller set up, usually it shows in storyboard immediately upon creating the project. Now there is nothing there. Where did it go and how do I bring it back?
I attached a screenshot so you can see the simulator running the tabbed apps but not showing in storyboard.
enter image description here
You opened the LaunchScreen.storyboard. This layout appears on the screen for a few moments while the app is launching.
https://developer.apple.com/documentation/uikit/app_and_environment/responding_to_the_launch_of_your_app
https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/launch-screen
The storyboard that you are looking for is Main.storyboard
Notice, that there is no Main.storyboard if you start with SwiftUI
There are no specialized app templates any more. But there is still a tab view controller object in the storyboard editor's library, so just drag it into the canvas and use it. It gives you same two-child tab view controller as before.
I’m working on an application for Android and iOS, which requires a certain flexibility for one or two views. That’s why we created & implemented a service that translated a basic list of objects into a user interface for both iOS & Android. But now that Xamarin.Forms is released, we decided to replace our service by the one Xamarin provides. I did succeed in creating the views with Xamarin.Forms, resulting in better looking & smoother running pages. But my problem lies in the navigation of it. Here is a little drawing on what I would like to achieve:
I would like my app to start an activity that starts with a custom fragment. After clicking a button on this fragment, I would like the page I created with the Xamarin.Forms api to be added to my current navigation stack! Once the user is finished with the Xamarin.Forms page, it navigates to a second custom fragment, all that without breaking the navigation cycle. Does anybody have an idea on how I can achieve this?
For the iOS developpers: replace Activity with NavigationController & Fragment with ViewController
Take a look at CarouselPage for Xamarin.Forms' own approach. It doesn't look like that's what you need but you can also look at its source code and maybe make a custom renderer yourself.
You may also want to take a look at MVVM
As for the easier/hackier way you'd want to make a button on each page and when the button is tapped execute Navigation.PushModalAsync(nextPage) - there won't be a "< Back" button any more, you may need to implement that yourself if you need it.
If by your meaning of 'current navigation stack' is for using the native Navigation of each platform, then remember that you don't have to use Xamarin.Forms' Navigation Model and functions such like PushAsync.
If you prefer to do Navigation with code specific to each platform then you can do this the same as normal. Just create your stub pages in each platform specific project and set the Xamarin.Forms content for each page from the shared project.
From each platform specific stub page (Activity / UIView / PhoneApplicationPage) you could then execute an Action<> call setting on the shared Xamarin.Forms page to help with the navigation, or alternatively, hook into a custom-event that is raised from the Xamarin.Forms** page back to the platform specific stub page to allow you to do navigation from there.
Like Sten mentioned there won't be any 'Back' button so you will most likely have to do that yourself.
I want to make an application which shows you the schedule for your school.
It should mainly display the current day and allow you to scroll left and right for switching to the day before or the day after the current selected day.
There should also be a settings view.
I'm new to making iOS apps, so which Xcode template should I use?
I think Page-Based Application seems to fit the most, however is this right?
I don't want the page curl transition, just a normal scrolling transition.
I typically start with a Tabbed Application or Master Detail view, but normally just a Tabbed Application and put in a tableview wrapped in a navigation controller. The tabs allow me to structure out different sections of the app and using table views gives you the nice slide in of new views.
Hope that makes sense.
I'm new to programming IOS and I'm creating a small App for our College. This app consists of a main view that has a couple of buttons to open different things (Map, Welcome message from the Dean, Intro video, etc...). One of these buttons will open a table view that will show our 5 campuses. When they select a campus it will open a UIWebView that shows the information about that campus.
My problem is that I was able to add a nib to my project and place a tableview object in that nib. It displays, but I,m not able to get the navigation bar or navigation button to show.
Would you have any site or suggestions?
Thanks
Ren
You should try using an Navigation Controller. When you connect the other views to it, it will automatically add the bar and the button.
Good luck!
Following up on this question: Kiosk Applications - OS X programming - Multiple monitors
I'm an iPhone programmer just starting out with OS X programming, and I'd like to know how I can present multiple views sequentially.
What I basically need to do is - Have a welcome screen with a button called "Click here to continue". Once the user clicks that button, it needs to completely replace the view with another view presenting a table view of options that the user can choose from.
I actually need to create a couple more screens, but any help on how to get this basic setup can help me get started. The problem I'm having is almost all the mac application source code available on Apple's website seems to be oriented towards single window applications popping up multiple windows for any additional tasks.
Thanks,
Teja
I enjoyed using M3NavigationView from Martin Pilkington http://www.mcubedsw.com/dev
Basically it pushes and pops NSViewControllers on a stack and allows you to animate between them. I am doing this for a quick setup wizard on an app I am working on.
Make a tabless tab view, and put each of your views into one of the tab view items. In Interface Builder, each tab view item will have a view automatically, so you just need to put all of the subviews for that tab into that view.
You can then switch tabs from code—e.g., in response to the “Next” button.