I am fairly new to programming and I am working with Objective C. I am trying to program an app where you have a UITableView, than you click on cell, which will bring you to another UITableView with more options. I have only encountered problems, however, in populating this second UITableView. Any suggestions for how to do this? Do i need to create new classes for each new table?
You could also look into a UINavigationBar if you are going to navigate through tables and want to go back and forth between them (once you get it connected to everything correctly, UINaviagationBars can be great, because you don't have to worry about what level you are at in your tables, it takes care of it for you! but like i said, after you hook it up right, which is a pain in the butt)
Your question's a bit vague, but it sounds like you need two UITableViewControllers:
ParentUITableViewController: This houses the top level table view that, when you tap on an element, moves you to the second
ChildUITableViewController: Houses the child table view that populates itself based on what was tapped on the first
The Apple examples are excellent for learning this sort of architecture, this one may be exactly what you're after: DrillDownExample
Related
First, please believe me when I say I did search for this answer first... a lot. I found many examples, but none performing similarly to what I need. Though I could have been searching using the wrong key words, I don't believe so.
Here is my issue:
I have a table view being populated by a query that is returning a huge amount of data. The data is for a list of restaurants, a price rating, and id. But there are so many restaurants in the database that it fills memory and crashes the app most time. (I am assuming this is what is going on, as the code works just fine if the query is limited, and has always worked on other pages I query things that don't have as much data returned.)
What I would like to do is make pagination for the application's table view for this page. I don't see how I could use the "Show More" method, or the auto load when scrolled to the bottom, simply because if you scroll down to the end of the list, you will still have the same issue: filling memory. Is there a way to do web-like pagination where (if they are not on the first page) they have a "Previous" cell at the top and (if not on the last page) a "Next" cell at the bottom? These would have to clear the cells out in the current view and drop the data so we're not just adding data which would cause the same issue, then do a new query to populate the cells.
Of course, I do not expect someone to sit here and write all that code for me. The main part I would need is just how to set up the cells for the next and previous cells. I should be able to figure the rest out after that, but I don't know how to go about clearing the data from the current table view.
Thanks for any help or suggestions.
I think you can do with a show more method or loading as you scroll, you say the problem is that you still load a bunch all the data and youll run out of memory, but you can avoid that... One option is, save to disk or just release data that isnt being shown on the table view, you can use indexPathsForVisibleRows method of UITableView to see which cells are visible, and with that info you should know which data you can safely release... You can do this either when you receive memory warnings, or maybe as cells are scrolled off the screen (up to you)...
Hope this helps
Daniel
Requirement : implementing a drowdown functionality in an UIView
The known way is using a UIWebView.
My Q is can this be done via a TableView?
Is there any way which lets me select a section(just like selecting a row), so that I can implement a hide/show cells of a section when that particular section is selected?
Don't know if I am understanding you correctly, but it seems to me that what you want can be done like this:
have a UITableView with several sections;
each section has got just one row;
when a specific row for a section is selected (didSelectRowAtIndex), you change the data source associated to that section by adding more elements and reloadData on the table.
when a specific row for a section is selected you also modify the data source corresponding to any other section so that it only contains one row.
EDIT:
From your last comment, it seems to me that what you are trying to do is a generic dropdown menu: you click somewhere and it displays; now, in your specific case you are thinking of clicking on a table, but it could in principle be anywhere else. I am saying this (if I am not wrong), because if it is so, then you can find ready-made implementations, like WEPopover, and you could save some effort.
Going back to your asking, in the case you are mentioning, you can animate the height of the table view frame (or bounds), so that its content is displayed little by little, as the view height increases; have a look at this Tutorial about Core Animations.
I have a ViewController whose view results from data from a fetch request with Predicate 1. I'd like to repeat the fetch request with a more restrictive Predicate 2 that will give a SUBSET of the data using Predicate 1.
Then I'd like to update (and possibly animate) that view on the iPhone screen by pressing a toggle button, so that the old and new views expand and collapse the rows. (I don't want to do this modally, as I'd like the user to see which rows came from the old rows.)
I'm thinking of something like the Phone application on the iPhone. Under the "Recents" tab, you'll see "All" and "Missed" buttons. When you press these buttons, it switches between showing all calls and just the missed ones by expanding/collapsing the rows. As far as I can tell, this is not a modal transition.
Can someone give me pointers as to how to do this?
If your view is a UITableView, you can use a combination of
-deleteRowsAtIndexPaths:withRowAnimation:
and
-deleteSections:withRowAnimation:
as well as the corresponding -insert methods, if applicable. You can batch multiple changes (so they animate at the same time) with -beginUpdates and -endUpdates.
I'm not aware of any way you'll be able to do this that doesn't involve iterating over one of the two sets and repeatedly calling -indexForObject on the other, though.
I found a way to expand/collapse rows by changing the heights of each cell, using tableView:heightForRowsAtIndexPath:indexPath:, as in:
http://www.alexandre-gomes.com/?p=482
Hope that's helpful to someone!
I'm new to iPhone programming and is faced with a task to show data on of Books where the first table view shows the books in my library using the title of the book to sort and another table view to show the authors. There is a need to have a search bar on both of the table views and when used to search will show results categorized as certain results is returned according to the author and the others returned according to the title. Something similar to the search results returned by the iPod App.
Thanks in advance to all who can shed light.
From what I gather, it sounds like you need to organize this somehow. I recommend you try a tabbed-based application. Create three tabs with the first two having navigation controllers for your tables. The first tab will have the tableView that sorts by book title. The second tab will have the tableView that sorts by the author. The third tab can do the search for either case. Hopefully, that points you in the right direction.
I currently have a TableView with over 35,000 cells. Obviously the standard iPhone flick-and-scroll becomes inefficient with this many cells. I have already implemented search but still think that a way to scroll the entire table is necessary. I am currently using the
-sectionIndexTitlesForTableView:
method to populate the side with the relevant characters, and I want similar functionality to that in Apple's Remote app. I do not have section titles in my table and simply want the sectionIndex to be an alternative way to scroll through the entire 35,000 cell table. How should I go about doing this?
My instinct tells me that a list that large could probably be broken down into smaller sections that could be filtered using the standard hierarchical navigation on the iPhone - that said, without knowing what exactly the data is I can't say that with any confidence.
You say you don't have any section titles - is the list alphanumeric? If so, what is wrong with having a standard alphabetical sectionIndex and sectionTitles?