I would like to remove the top left back button.
I tried to check "Full screen" option, but the arrow is still here.
I want to remove the back button because I have a button next to this button, and I don't want the user tap on it by mistake
Thx
According to the Apple Documentation the deprecated method that was in the previous answer (which used to solve this issue) has been replaced with:
reloadRootPageControllers(withNames names: [String],
contexts: [Any]?,
orientation: WKPageOrientation,
pageIndex: Int)
"Parameters
names
An array of NSString objects, each of which contains the identifier of an interface controller in your storyboard file. The order of the identifiers in the array defines the order of the corresponding interface controllers in the page-based interface.
contexts
An array of objects of type id. Use this parameter to pass context objects to each of the interface controllers loaded into the page-based interface. The first object in the array is passed to the first interface controller, the second object is passed to the second interface controller, and so on.
orientation
The scrolling orientation for the page-based interface. For a list of valid values, see WKPageOrientation."
And pageIndex should be pretty simple to figure out. If you only have one element in [names] it will be 0. Otherwise you should select the index of the page you want loaded from [names]
Try:
WKInterfaceController.reloadRootControllersWithNames(["myInterfaceController"], contexts: [])
This removes it by making the controller the root controller. You may have to reload the controller after calling this.
Related
I have three elements in my UICollectionViewCell:
Two labels with name and price, and a quantity button.
I would like to add the name and the quantity with "didSelectItemAtIndexPath" to a specific collection view in the previous view controller and the price in another view controller. I may achieve this by using a segue to pass data to any view controller of my choice.
Also, at the same time, I want to keep track of the selections I make adding them to a table view below the collection view.
My guess is to create empty arrays for each item.. one for name, price and quantity.
I may be wrong.. and I tried to append my current selection and I know I am missing something.
To pass information to a previous viewController use a delegate protocol. Suppose a is your first viewController, and b is your second viewController.
You can create a delegate protocol in b (here you specify a func you want to execute inside of a)
Set a as the delegate for b
write a function yourDelegateFunction in a , which your delegate protocol will call to update the viewController with your first collection.
in didSelectItemAtIndexPath call delegate.yourDelegateFunction
Here's a video with an easy guide for how this works:
https://www.youtube.com/watch?v=3BcBu30thIA
If you provide a sample of your code, and highlight where you experienced issues, I can provide a more precise solution.
I am new to iOS development, and I wonder how to do the following task:
I want the user to navigate through a multi-level menu. I have UITableViewController with two different kinds of cells.
When clicked on cell type number one I want to reload the UITableViewController with different data. (A click on the other cell does something else.)
Do I have to set up a different UITableViewController in the StoryBoard or can I reuse the existing one and segue from and to the same one? I don't know how many levels I will have in the end because the data comes from a remote source. I could have two different UITableViewControllers (because there is one different button), but I'd prefer to do it all in one (and try to hide and show the button when needed).
Anyway, I need to reuse the same class but change the data for each instance. How can I do that? I also need to restore the old state (last used data) of the controller when going back - or does this happen automatically - is it an "unwind" anyway?
Which methods should I override to delegate the new data?
I tried several tutorials but couldn't yet find the information needed.
Thanks in advance
Read up on Nav Controllers, I'm pretty sure this is what you'll use.
Add UITableViewDelegate to your ViewController press command and click on it for more information.
You can always just use a simple variable to keep track.
Declare a variable var step = 0
Then in your
override func prepareForSegue(){
step += 1 //and pass that variable to the next view and so one, incrementing by one each time.
}
Then in your
viewDidLoad(){
switch step{
case 0:
//add this data
case 1:
//add this data
case 2:
//add this data
default: break
}
I am looking for some pointers on how to implement binding for a single click (similar to what NSTableView already has for Double Click on a row). Initially I thought, it is much simpler to leverage selectionIndexes property and make use of that. However when the table view gets loaded the value of this property corresponds to the zeroth index(first row) and it makes to think that the first row is always selected. Please note that I do not want to use the option of setting delegate/datasource for the tableview and use the available methods there.
I have no errors but my second table view controller simply won't display the correct values (or number of values) segued from my first table controller.
Here's the full project if more insight is needed - https://www.dropbox.com/sh/77gs3bmxb77ul79/AAApV2m8Vh9Sc2FABiDzZRgha?dl=0
anyways, my code for the first table controller and second controller are shown below.
I have a feeling my issue is occurring with the naming conventions of my struct and new variable in the second controller "newrestaurant", in the prepare for segue function, or the "newrestaurant[indexpath.row].name" section of the cellforrowatindexpath function in the second controller. Otherwise, the other code appears pretty straightforward.
Any help would be incredibly appreciated!!!
You forgot to assign segue identifier.
Click on your segue and Attribute Inspector at right hand side and assign segue Identifier as shown in below Image:
Simple question.
I have a tableViewController that will display a list of search results.
I want to create a block based callback (I think that's what you would call it)
I would present the viewController
[searchResultController showSearchResults //BlockCode here {
//did select this item...
}];
but use a block so that I can detect the selection made from the tableview instead of using a delegate method.
Problem is I have no idea how to implement this. Is there a good tutorial or a simple example on how to do this?
Your search results controller needs to have a block property. This block should be defined with no return type, and should take a parameter of whatever object you are going to use to represent the selected item.
Before presenting your search results controller, set the block property to whatever you wish to do for your callback.
Within the search results controller, when a row is selected, execute the block, passing in the selected object. Either this method, or the block itself, should also dismiss your controller.