iPhone SDK 3 Programming: Advanced Mobile Development for Apple iPhone and iPod touch (Wiley)

iPhone SDK 3 Programming: Advanced Mobile Development for Apple iPhone and iPod touch (Wiley)
Автор
 
Год
 
Страниц
 
672
ISBN
 
ISBN13:9780470683989
Издатель
 
Wiley

Описание:

I bought this book because I was struggling with some detail with navigation controllers. The book seemed to have the answer. Sadly the first example I looked at is flawed. In chapter 9, page 278 is the code line self.navigationItem.backBarButtonItem.title = @"Shows"; This is an attempt to give a title to a backBarButtonItem that does not exist at the root level of the navigation hierarchy. Page 276 shows a screenshot without the button or its impossible label, so the author should have picked up that the code was not working. Further into the nav hierarchy, the book (and downloaded source code from which I copied and pasted these code snippets), tries to name the backBarButtonItem again. e.g. self.navigationItem.backBarButtonItem.title = [delegate showNameAtIndex:delegate.selectedShow.row]; (p280 in the book). This does not work, despite its impressive sophistication. The back bar button title is derived from the title of the view from which we moved. (The screenshots on p276 and 277 show that this code line is ineffective and unnecessary, the navcontroller did all the work anyway. Again, the author should have realised that the code was not working, because it is obvious from the screenshots he supplied.) I have experimented with commenting out lines of his code and am satisfied that there is a conceptual error here. It would seem to be a major conceptual error, judging from the number of blogs, discussion groups etc on this very topic. After a couple of days struggling with this, I reviewed the Apple sample code again, and finally realised my conceptual error-shared, it would seem, with many others.
The NavBar sample code from Apple is clear on how to get out of a navigation hierarchy. The "Done" button we all wanted here should be set up in a sequence like this:

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle {

if (self = [super initWithNibName:nibName bundle:nibBundle]) {
self.wantsFullScreenLayout = NO;
self.title = @"Intervals";
UIBarButtonItem *addButton = [[[UIBarButtonItem alloc]
initWithTitle:(@"Done")
style:UIBarButtonItemStyleBordered
target:self
action:@selector(doneAction:)] autorelease];
self.navigationItem.rightBarButtonItem = addButton;
}
return self;
}


- (void)doneAction:(id)sender
{
// the Done button was clicked, handle it here
}

That having been said, as a hobby programmer who has been having fun since the days of Fortran 4, I found the introductory sections of the book lucid and certainly added value over the freely available documentation from Apple. Sometimes we need someone to pull stuff together, to select the key stuff. In part, this book does that. It is also very full of examples and distinguishes itself from similar books by the range and usefulness of the examples.
Pity about the profound error in the chapter I started with. I hope it is the only one, because I shall be continuing to use this book.

Похожие книги

Latent Class Analysis of Survey ErrorLatent Class Analysis of Survey Error
Автор: Paul P. Biemer
Год: 2010
Nonsampling Error in SurveysNonsampling Error in Surveys
Автор: Judith T. Lessler
Год: 1992
The 3D hp FINITE ELEMENT SIMULATION OF ELECTROMAGNETIC WAVESThe 3D hp FINITE ELEMENT SIMULATION OF ELECTROMAGNETIC WAVES
Автор: Dong Cynthia Xue
Год: 2010
Button CollectingButton Collecting
Год: 2011