cs193p – Project #4 Assignment #4 Task #8

Please note, this blog entry is from a previous course. You might want to check out the current one.

Keep track of the most recent 100 Twitter searches the user has performed in your application. Add a UITabBarController to your application with a tab for searching (i.e. your main UI) and a second tab showing these most recent search terms in a table view (uniqued with most recent first). When a user clicks on a search term in the second tab, segue (stay in that same tab) to show the most recent Tweets matching that search term. Store these most recent searches permanently in NSUserDefaults so that your application doesn’t forget them if it is restarted.

Embed the current initial view controller (which should be your navigation view controller) in a tab view controller. Add a new table view controller and embed it in a navigation view controller. Add this new navigation view controller to the tab view controller, and choose nice icons for the two new tabs of the tab view controller. Create a new class for the new table view controller and segue from its cell to the twitter table view controller. Don’t forget to provide sensible names for the cell and the segue identifiers:

cs193p - Project #4 Assignment #4 Task #8 - tab view controller
cs193p – Project #4 Assignment #4 Task #8 – tab view controller

Continue reading “cs193p – Project #4 Assignment #4 Task #8”

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

cs193p – Project #4 Assignment #4 Task #7

Please note, this blog entry is from a previous course. You might want to check out the current one.

If the user clicks on an image in your newly created view controller, segue to a new MVC which lets the user scroll around and zoom in on the image. When the image first appears in the MVC, it should display zoomed (in its normal aspect ratio) to show as much of the image as possible but with no “whitespace” around it.

Copy the image-view controller from the storyboard of the Cassini project to the smashtag storyboard and create a segue from the image-table-view cell to the new view controller:

cs193p - Project #4 Assignment #4 Task #7 - image view controller
cs193p – Project #4 Assignment #4 Task #7 – image view controller

Continue reading “cs193p – Project #4 Assignment #4 Task #7”

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

cs193p – Project #4 Assignment #4 Task #6

Please note, this blog entry is from a previous course. You might want to check out the current one.

If the user clicks on a mentioned url in your newly created view controller, you should open up that url in Safari (see Hints below for how to do that).

Before a segue fires, check if the keyword is actually a link. If so, block it from firing and open the link instead:

    override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool {
        if identifier == Storyboard.KeywordSegueIdentifier {
            if let cell = sender as? UITableViewCell {
                if let url = cell.textLabel?.text {
                    if url.hasPrefix("http") {
                        UIApplication.sharedApplication().openURL(NSURL(string: url)!)                        
                        return false
                    }
                }
            }
        }
        return true
    }

The complete code for task #6 is available on GitHub.

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

cs193p – Project #4 Assignment #4 Task #5

Please note, this blog entry is from a previous course. You might want to check out the current one.

If a user touches an entry for a hashtag or a user in the “mentions table view” that you created in Required Task 2 above, you should segue to show the results of searching Twitter for that hashtag or user. It should be searching for hashtags or users, not just searching for a string that is the name of the hashtag or user (e.g. search for “#stanford”, not “stanford”). The view controller to which you segue must work identically to your main Tweet-viewing view controller (TweetTableViewController).

Create a segue from the keyword cell to the initial table view controller (and name its identifier):

cs193p - Project #4 Assignment #4 Task #5 - Storyboard
cs193p – Project #4 Assignment #4 Task #5 – Storyboard

Continue reading “cs193p – Project #4 Assignment #4 Task #5”

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

cs193p – Project #4 Assignment #4 Task #4

Please note, this blog entry is from a previous course. You might want to check out the current one.

If a section has no items in it, there should be no header visible for that section.

… oops, didn’t notice that. We need to check if there are items to show:

    var tweet: Tweet? {
        ...
                if media.count > 0 { ... }
            ...
                if urls.count > 0 { ... }
            ...
                if hashtags.count > 0 { ... }
            ...
                if users.count > 0 { ... }
            ...
    }

The complete code for task #4 is available on GitHub.

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

cs193p – Project #4 Assignment #4 Task #3

Please note, this blog entry is from a previous course. You might want to check out the current one.

Each section in the mentions table view should have an appropriate header.

We store already the title in our data structure, now just use it:

    override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
        return mentions[section].title
    }

The complete code for task #3 is available on GitHub.

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

cs193p – Project #4 Assignment #4 Task #2

Please note, this blog entry is from a previous course. You might want to check out the current one.

When a user clicks on a Tweet, segue to a new UITableViewController which has four sections showing the “mentions” in the Tweet: Images, URLs, Hashtags and Users. The first section displays (one per row) any images attached to the Tweet (found in the media variable in the Tweet class). The last three show the items described in Required Task 1 (again, one per row).

Add a new table view controller to story board and a new table-view-controller class which you link to the new controller. Add a segue from the tweet cell too the new controller (don’t forget to add a segue identifier).
Continue reading “cs193p – Project #4 Assignment #4 Task #2”

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail