Very nice and very helpful. There's allot of crap online saying how to build a app but most are either too complicated for beginners or simply say "Design App, Lean C" etc. This walkthrough has helped me move forward with learning about tools and I appreciate it. Thanks
Amazing! I may have started hundreds of different apps but when I got to the TableViews I got stucked every time, now I got a table view in my newest app! Thanks a lot.
You have a very nice voice. You should continue to teach these tutorials because you're very peaceful and that helps lower my stress when learning this complicated app stuff :). Anyways, thank you for your time and hope to learn more from you.
This is a very useful tutorial for someone with an existing, albeit basic understanding of cocoa and objective c. Thank you Elisabeth for taking the time to create it. filipjoo. In answer to your question. In order to display an initial screen as the app loads you simply need to create a 480x320px png file and name it Default.png. Add this to your project in the same way that Elisabeth adds the button icons and the image will automatically be used when the app launches.
Nice tutorial, thanks a lot! It really helped me to fastly start making my own application with this schema. I don't know how much time I would spend figuring out how to make this magics. The white background looks really clean. Nice voice and good quality of tutorial.
Thank you so much for this video. I finally have several navController table views nested in a Tab Bar based app. Ive been working on this for a while and it didnt click until I saw this video! Thanks again! Also, Elisabeth has a wonderful speaking voice.
Thank you much! I was stuck for a bit until I found your video. And I agree with the other posters, you definitely have a very nice and pleasant voice to listen to :)
Okay Forget everything I said - I was able to figure it all out, but now I am stuck on one thing and it looks like many others have had this problem! Obviously all book are not going to have the same description... thus how can a make it so each detail can be different?? This really has been the best tutorial out there that I have found! If I could get this last thing I would be set!
I got about three quarters of the way with only minor problems, but then got completely stuck and had problems that i could not fix. Great video and really good quality sound and picture.
Hi Elisabeth. This is a really great tutorial. I'm a total beginner to programming and app development and was able to follow your instructions to get the exact simulated app. 90,000 views later you must have had a few help requests; is there any chance of another video to demonstrate how to create a second level within the table view (click on a cell in table view and bring up another table) for some cells, and a text subview for others? Or do you know where I can find this out? thanks
First of all, congratulations for this GREAT tutorial. Could you recommend some book to follow for a newie like me? This is the best video tutorial ever.... So helpfull!
I used an NSObject subclassed to my appDelegate connect to the window and the tab bar controller. I was able to recreate "Tabster" from apples samples. Your sample was easier to understand and was helpful in understanding what was happening in the tabster code.
Yes, you can create a new view for each table row rather than using an existing view. What I'd recommend is create the different types of view you want to use (depending on the content in the table row), and then in the code where you push the view on the navigation stack, pick the view depending on the content of the table view row. You'll have to programmatically place the content you want into the view before displaying it.
@Jollyprez By the way, in your case it's preferable to use delegate pattern, notifications are quite heavy and it also implies that there is an undefined number of receivers, whereas a view controller shouldn't be managed by more than one controller at a time.
@Jollyprez Well, the fact is that if you're not in a navigation controller, the method to get the parent navigation controller will return nil, so you can either fail gracefully, try to find another kind of controller or do another kind of management. Usually, you'll make sure your specific kind of view controller only works when pushed to a navigation controller.
Thank you, thank you, thank you! i've gone over this a few times and even taken extensive notes....is this the same method you would use in setting up a drill down menu with tab bars? How would you set it up to work with a plist? Thanks again!
Thanks for the post, the video is very easy to follow and surely useful for beginners. I do think you should have included dynamic text description in the BookDetailsView rather than a static "Book Description Goes Here" label. I think a lot of beginners also have trouble understanding the proper way to use global data. Otherwise, well done.
Good, thanks for this, and also a beautiful voice. Now, how to invert the objects and create an navigation application with tab bar controller in the second view ?
@MrSantaClas Thanks fior your helpful reply! Im still have problems due to my xcode version being newer. I am hoping Oreilly or someone can update the screen cast for xcode 3.2.3 this is the best tutorial Ive found. Clear, concise..easy to follow. Im only having problems due to my xcode version being different so the instructions dont always jive...
@Jollyprez It really depends on what you actually want, the level of dynamism you want. A view could as well be restricted to one particular case, you could also use delegate pattern, or you could manage all kinds of cases, etc.
One other thing...if you can not change the height it is because you need to get rid of the STATUS BAR. Make it Status Bar "Unspecified". The window becomes editable. This is using Xcode 3.2.5
@Jollyprez I understood what you meant, it's a kind of delegate pattern, but to me it's too much unnecessary flexibility, of course it all depends on the context. If you really have a lot of different interfaces and if your view controller may end up in many different places, you sure will prefer notifications or delegates.
Hi Elisabeth, Nice tutorial but I have a question- I noticed that the O'Reily picture first popped up before the tableview came into play. How can I (for example) in this case, make the O'Reily picture stay on until the user presses a button to go to your tableview screen?
Great tutorial. Helped me a lot. Couple of things to make tutorials better could be addition of zooming in video and slowing down a bit. reading code in youtube video is a nightmare and zooming in your recording software can help.
Great recording, it looks like it will be really helpful to me. But is there a more recent version for Xcode 5.1 / iOS 7.1? Even just a textual list of differences would be super. Thanks for making this!
Thank you for this post... I have went through it several times and can't figure out where I went wrong... It all seems to work except for clicking on a row in the table view... I just get a NSException instead of it showing the details view.... Any one else have this?
Last thing, each tab should contain a navigation controller, or at least, each tab in which you can do navigation. And since you MUST NOT use the app delegate to access the navigation controller to push your controllers, you simply use a property available inside all view controllers: navigationController. This property returns the UINavigationController object in which the receiver was pushed, so you can push new view controllers above the receiver easily, and that how it's supposed to be done!
@schogini I don't speek good english, but I hope you understand. In the "Identity" window you have to click at the first icon (I think) in the top and set the status line (the line with battry inc.) from gray to none and then you can change the size :)
@Emilie521 Its probably because you created a class of type UIViewController subclass without ticking the 'UITableViewController subclass' option. No matter you can simply add UITableViewDeletegate, UITableViewDatasource protocols to your view .h file and then copy and paste those methods into the .m file
@drunkensilvermonkey I get the same... But I upgraded Xcode last week, plus, I'm a newbie. Can't resize the window in the way she does either. I wish there were downloadable files so I could compare with my build.
@vitaligra I had the same issue. i found out that i forgot to reference the navCont. class that she did at 10:44 . I imported my navCont.h instead, but it worked just fine. Hope this helps.
XCode 4 Changes (part 1): 11:31 - Create UIViewController. Next screen, choose to subclass a UITableViewController. A .xib file is auto created. 12:43 - Instead of setting the type, drag a new Navigation Controller on top of the actual TabBar in the view (see a + icon). This adds a new Tab with everything. Delete the old "first view" from the tree view. This is now your "first view". 14:07 - View already created with a TableView inside, just link it to file's owner. (no more chars remaining).
Holy moses. Someone bring it back down to earth please! I just want to understand the app objects, classes etc. etc. Perhaps I should hop on to a previous post. the newboston is great too but damn, clear up the fog.
@psychoh13 I don't think I've explained this well. Your method will certainly work, but I think it's too tightly coupled. I reuse viewcontrollers within navigation controllers and without. When it needs to exit, it does a notification. Much simpler than having all that controller have to know details about where it may or may not be in a view hierarchy. Small code, loosely coupled. Easy to debug. Extremely flexible.
Can I get the source code? I am having some major issues. It was a great tutorial, but when you said to run it it is giving me errors. I have tried alot of stuff to try and fix , but it isn't working. (I am running the new 4.2 SDK if that has anything to do w/ it)
The code to get the app delegate, written from 25:30 could be replaced with a single line: [self.navigationController pushViewController:bookDetailViewController animated:YES];
how do i make the TableView open up in it's OWN DETAIL VIEW or UIVIEW. Like each one SEPARATE and have its OWN VIEW instead of all of them LINKED TOGETHER??? IVE BBEN ON THIS FOR DAYS PLEASE HELP!!!
I tried this tutorial, but with the last version of XCode, there is no template "window application", it's replace by an "empty application", which dont have any .xib. So i added manually the .xib, and even after doing everything shown in this video, the first time we have to try the application, it results in a black screen. I probably missed something but i can't figure out what it is.
@cykelhjalm a quick solution to this is to delete the UIView and re-add a new UIView element just after you created a .xib file, then you can modify the size.
I have just worked thru the last section from 23.30 and at the end on Build and Run I have errors in the DetailViewController. -No declaration of property... -Wrong type argument to unary minus -Expected ';' before ';' token The problem is it is extremely difficult to read what is being typed. >>>>> Is this code available?? Frustrated but working on it! Thank you.
I am not able to reduce the height of the View in the interface builder. The value as per the video should be set to 411 but in my case the text box is not editable...can you please help. Thanks in advance.. Sree
I'm having a problem linking the Booksnavcontroller to the selected books nav controller (at 13:33) it won't allow me to link it to it.. what am I doing wrong? I have redone this guide 3 times and still get stuck at this point..
@Colton328 - Hey, I have the whole thing done and it works great except when I try to click on any of the lists - it is then that the app crashes, where to I take off the "NIB Name" like you said?
This only gives me a blank application even though i've added lots of things in the firstViewCOntroller .xib , seems like other people are having the same problem! Do you mind helping us out?? I'm using xcode 3, you haven't specified what version you're using..
@psychoh13 I'm not saying to use the app delegate. I agree, the delegate shouldn't meddle here. BUT, in my opinion, a view that HAS to assume it's within a Navigation controller is too tightly coupled. I like it to say, "We need to do this" and spawn a notification. That notification can be handled by a subclass of a UINavigationViewController ( which I think is a bad idea ) OR by a another controller without that baggage. I do this because I want to track where the user has gone, for example.
Very nice and very helpful. There's allot of crap online saying how to build a app but most are either too complicated for beginners or simply say "Design App, Lean C" etc.
This walkthrough has helped me move forward with learning about tools and I appreciate it. Thanks
Exactly what I needed. Thanks for speaking clearly and recording at high enough resolution that I can read it. Great video!
Amazing! I may have started hundreds of different apps but when I got to the TableViews I got stucked every time, now I got a table view in my newest app!
Thanks a lot.
This is very helpful for a newbie like me..
Elisabeth also have a very nice voice that made me always pay attention on the tutorial..
You have a very nice voice. You should continue to teach these tutorials because you're very peaceful and that helps lower my stress when learning this complicated app stuff :). Anyways, thank you for your time and hope to learn more from you.
This is a very useful tutorial for someone with an existing, albeit basic understanding of cocoa and objective c.
Thank you Elisabeth for taking the time to create it.
filipjoo. In answer to your question. In order to display an initial screen as the app loads you simply need to create a 480x320px png file and name it Default.png. Add this to your project in the same way that Elisabeth adds the button icons and the image will automatically be used when the app launches.
Nice tutorial, thanks a lot! It really helped me to fastly start making my own application with this schema. I don't know how much time I would spend figuring out how to make this magics. The white background looks really clean. Nice voice and good quality of tutorial.
Thank you so much for this video. I finally have several navController table views nested in a Tab Bar based app. Ive been working on this for a while and it didnt click until I saw this video! Thanks again!
Also, Elisabeth has a wonderful speaking voice.
THANK YOU! I've been trying to do this for about an hour and 5 mins into this video, you showed me the error of my ways!
Thank you much! I was stuck for a bit until I found your video. And I agree with the other posters, you definitely have a very nice and pleasant voice to listen to :)
Thanks! I've been fighting for hours to get this setup the right way. Now it works and more importantly: I understand why it works :)
Truly excellent (and accessible) walkthrough, saved me tons of time and headaches today.
Thank you for this very helpful tutorial. It's great to know there are other women out there who are serious about coding.
this is the best view controller tutorial i have seen!!
Seems like a good video for someone I feel at my level of iPhone dev (familiar with basic concepts, but not confident). Thanks!
Awesome video. Occasionally, a little fast, but for the most part perfect for a newcomer to iPhone development. Thanks!
Okay Forget everything I said - I was able to figure it all out, but now I am stuck on one thing and it looks like many others have had this problem! Obviously all book are not going to have the same description... thus how can a make it so each detail can be different??
This really has been the best tutorial out there that I have found! If I could get this last thing I would be set!
I got about three quarters of the way with only minor problems, but then got completely stuck and had problems that i could not fix.
Great video and really good quality sound and picture.
This is absolutely amazing. I've been trying to do exactly this for a while and had no luck. Thanks you!!!!!
You are amazing! I dont have words to thank you. I found this on time.
Hi Elisabeth. This is a really great tutorial. I'm a total beginner to programming and app development and was able to follow your instructions to get the exact simulated app. 90,000 views later you must have had a few help requests; is there any chance of another video to demonstrate how to create a second level within the table view (click on a cell in table view and bring up another table) for some cells, and a text subview for others? Or do you know where I can find this out? thanks
First of all, congratulations for this GREAT tutorial.
Could you recommend some book to follow for a newie like me?
This is the best video tutorial ever.... So helpfull!
Yes! A female voice, a clear and well spoken no slurrpy voice! Thank you!
I used an NSObject subclassed to my appDelegate connect to the window and the tab bar controller. I was able to recreate "Tabster" from apples samples.
Your sample was easier to understand and was helpful in understanding what was happening in the tabster code.
Yes, you can create a new view for each table row rather than using an existing view. What I'd recommend is create the different types of view you want to use (depending on the content in the table row), and then in the code where you push the view on the navigation stack, pick the view depending on the content of the table view row. You'll have to programmatically place the content you want into the view before displaying it.
forgot to add Elisabeth this is a superb tutorial!
Best totorial I seen yet. Keep them coming.
@Jollyprez By the way, in your case it's preferable to use delegate pattern, notifications are quite heavy and it also implies that there is an undefined number of receivers, whereas a view controller shouldn't be managed by more than one controller at a time.
@Jollyprez Well, the fact is that if you're not in a navigation controller, the method to get the parent navigation controller will return nil, so you can either fail gracefully, try to find another kind of controller or do another kind of management.
Usually, you'll make sure your specific kind of view controller only works when pushed to a navigation controller.
This has been a fantastic help, thank you. I've duly ordered the O'Reilly's book.
Thank you very much for your perfect tutorial. It made me understand Navigation in Xcode the first time!
thank you mamma, this is exactly what i was looking for. it helps me a lot.
Thank you, thank you, thank you! i've gone over this a few times and even taken extensive notes....is this the same method you would use in setting up a drill down menu with tab bars? How would you set it up to work with a plist?
Thanks again!
Thanks for the post, the video is very easy to follow and surely useful for beginners. I do think you should have included dynamic text description in the BookDetailsView rather than a static "Book Description Goes Here" label. I think a lot of beginners also have trouble understanding the proper way to use global data. Otherwise, well done.
absolutely great. your tutorial was exactly what i needed for my project. thanks!!
Its really good and after going through this, I understand how data flows. Thank you very much.
Good, thanks for this, and also a beautiful voice.
Now, how to invert the objects and create an navigation application with tab bar controller in the second view ?
@MrSantaClas Thanks fior your helpful reply! Im still have problems due to my xcode version being newer. I am hoping Oreilly or someone can update the screen cast for xcode 3.2.3 this is the best tutorial Ive found. Clear, concise..easy to follow. Im only having problems due to my xcode version being different so the instructions dont always jive...
Nice Tutorial.Finally made it with work with Xcode 3.2.5 (64) and iPhone 4.2 Simulator.
Thanks Elisabeth..
Meanwhile Nice Voice too
@Jollyprez It really depends on what you actually want, the level of dynamism you want. A view could as well be restricted to one particular case, you could also use delegate pattern, or you could manage all kinds of cases, etc.
Nice Tutorial.
How do we add seperate content in the Detail View?
One other thing...if you can not change the height it is because you need to get rid of the STATUS BAR. Make it Status Bar "Unspecified". The window becomes editable. This is using Xcode 3.2.5
Great tutorial. Only one problem...when I Build and Run the view goes back to the desktop. Any clues as to what i have done wrong?
Thank you!
Excellent video, keep up the great work!
@Jollyprez I understood what you meant, it's a kind of delegate pattern, but to me it's too much unnecessary flexibility, of course it all depends on the context. If you really have a lot of different interfaces and if your view controller may end up in many different places, you sure will prefer notifications or delegates.
Hi Elisabeth,
Nice tutorial but I have a question- I noticed that the O'Reily picture first popped up before the tableview came into play. How can I (for example) in this case, make the O'Reily picture stay on until the user presses a button to go to your tableview screen?
Great tutorial. Helped me a lot. Couple of things to make tutorials better could be addition of zooming in video and slowing down a bit. reading code in youtube video is a nightmare and zooming in your recording software can help.
this is good for two tab bar .. but if I want to add more tab bars it's give red errors
Great recording, it looks like it will be really helpful to me. But is there a more recent version for Xcode 5.1 / iOS 7.1? Even just a textual list of differences would be super. Thanks for making this!
I'd love to see this as an Xcode 4 example!! I haven't found one yet, and have several problems getting things to link in 4. :(
Elisabeth, thanks a lot for this excellent share.... Best wishes Sree
O!Reilly'thank you for sharing this programing vid!
Will you please upload this video in higher resolution?
thank you :) excellent tutorial, exactly what I was looking for!
ur voice is soothing
Just go into Interface Builder, and click on the window, and you'll see there is an option to change the navigation bar style.
Thank you for this post... I have went through it several times and can't figure out where I went wrong... It all seems to work except for clicking on a row in the table view... I just get a NSException instead of it showing the details view....
Any one else have this?
many thanks for this good tutorial.can you also publish the code?
Thanks for helping me through this!
Very good explaination! Thanks,
Bas
Where exactly is this occurring? Is the vid doing this wrong and is different when using the latest version? Thank you.
i found it thanx. i have tried what i want to do but the table isnt sufficient is there any way to create a calendar in IB or xcode???
I literally love you. Actually.
Last thing, each tab should contain a navigation controller, or at least, each tab in which you can do navigation. And since you MUST NOT use the app delegate to access the navigation controller to push your controllers, you simply use a property available inside all view controllers: navigationController.
This property returns the UINavigationController object in which the receiver was pushed, so you can push new view controllers above the receiver easily, and that how it's supposed to be done!
@schogini I don't speek good english, but I hope you understand.
In the "Identity" window you have to click at the first icon (I think) in the top and set the status line (the line with battry inc.) from gray to none and then you can change the size :)
@Emilie521 Its probably because you created a class of type UIViewController subclass without ticking the 'UITableViewController subclass' option. No matter you can simply add UITableViewDeletegate, UITableViewDatasource protocols to your view .h file and then copy and paste those methods into the .m file
@drunkensilvermonkey I get the same... But I upgraded Xcode last week, plus, I'm a newbie. Can't resize the window in the way she does either. I wish there were downloadable files so I could compare with my build.
I cannot say enough. Thank you!
Great Job!
Thank you very very much it simple solved my problems
@vitaligra I had the same issue. i found out that i forgot to reference the navCont. class that she did at 10:44 . I imported my navCont.h instead, but it worked just fine. Hope this helps.
XCode 4 Changes (part 1):
11:31 - Create UIViewController. Next screen, choose to subclass a UITableViewController. A .xib file is auto created.
12:43 - Instead of setting the type, drag a new Navigation Controller on top of the actual TabBar in the view (see a + icon). This adds a new Tab with everything. Delete the old "first view" from the tree view. This is now your "first view".
14:07 - View already created with a TableView inside, just link it to file's owner.
(no more chars remaining).
I need to update this for XCode 4! I'll get to it soon, I hope! Thanks everyone.
hey great tutorial but i have a question. i can´t change the size of the view.xib to 411 px the numbers are for some reason locked. help me please
What tools do you use to develope apps?
Would anybody please give me link where I can get it?
Holy moses. Someone bring it back down to earth please! I just want to understand the app objects, classes etc. etc. Perhaps I should hop on to a previous post. the newboston is great too but damn, clear up the fog.
@psychoh13 I don't think I've explained this well. Your method will certainly work, but I think it's too tightly coupled. I reuse viewcontrollers within navigation controllers and without. When it needs to exit, it does a notification. Much simpler than having all that controller have to know details about where it may or may not be in a view hierarchy. Small code, loosely coupled. Easy to debug. Extremely flexible.
The text cannot be read on the video. Is there a higher resolution version available?
Can I get the source code? I am having some major issues. It was a great tutorial, but when you said to run it it is giving me errors. I have tried alot of stuff to try and fix , but it isn't working. (I am running the new 4.2 SDK if that has anything to do w/ it)
@filipjoo You can download tab bar images from the internet that are free to use, just search for "iphone tab bar icon".
The code to get the app delegate, written from 25:30 could be replaced with a single line:
[self.navigationController pushViewController:bookDetailViewController animated:YES];
Thanks for this....it helps a lot!
Thank you so much for providing this video angel voice ! VERY HELPFUL :)
how do i make the TableView open up in it's OWN DETAIL VIEW or UIVIEW. Like each one SEPARATE and have its OWN VIEW instead of all of them LINKED TOGETHER??? IVE BBEN ON THIS FOR DAYS PLEASE HELP!!!
Awesome tutorial!!
I tried this tutorial, but with the last version of XCode, there is no template "window application", it's replace by an "empty application", which dont have any .xib. So i added manually the .xib, and even after doing everything shown in this video, the first time we have to try the application, it results in a black screen. I probably missed something but i can't figure out what it is.
@cykelhjalm a quick solution to this is to delete the UIView and re-add a new UIView element just after you created a .xib file, then you can modify the size.
That is just perfect! Thanks a lot!!
Very useful video. And nice voice too, which doesn't hurt :)
I have just worked thru the last section from 23.30 and at the end on Build and Run I have errors in the DetailViewController.
-No declaration of property...
-Wrong type argument to unary minus
-Expected ';' before ';' token
The problem is it is extremely difficult to read what is being typed.
>>>>> Is this code available??
Frustrated but working on it!
Thank you.
@EEngenious
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
for black...
Great tutorial! :) thanks a lot!!!
Post it in HD please!!
I am not able to reduce the height of the View in the interface builder. The value as per the video should be set to 411 but in my case the text box is not editable...can you please help. Thanks in advance.. Sree
I'm having a problem linking the Booksnavcontroller to the selected books nav controller (at 13:33) it won't allow me to link it to it.. what am I doing wrong? I have redone this guide 3 times and still get stuck at this point..
@Colton328 - Hey, I have the whole thing done and it works great except when I try to click on any of the lists - it is then that the app crashes, where to I take off the "NIB Name" like you said?
@psychoh13 Agreed. This is how its done in the Beginning iPhone 3 Development example and those guys know what they are doing.
This only gives me a blank application even though i've added lots of things in the firstViewCOntroller .xib , seems like other people are having the same problem! Do you mind helping us out?? I'm using xcode 3, you haven't specified what version you're using..
thanks a lot, this is really helpful
Awesome job!
@psychoh13 I'm not saying to use the app delegate. I agree, the delegate shouldn't meddle here. BUT, in my opinion, a view that HAS to assume it's within a Navigation controller is too tightly coupled. I like it to say, "We need to do this" and spawn a notification. That notification can be handled by a subclass of a UINavigationViewController ( which I think is a bad idea ) OR by a another controller without that baggage. I do this because I want to track where the user has gone, for example.