Note that there are some explanatory texts on larger screens.

plurals
  1. POThe first method in detail view controller is being skipped
    primarykey
    data
    text
    <p>Is there something important I need in RoomItem to ensure that this method isn't skipped? It's the very first one in my detail view controller, and it is continually skipped when I'm in debugging mode. I'm sure I'm missing something ridiculously simple, but I've been staring at it for hours and just can't figure out what it is.</p> <pre><code>@interface DetailViewController () - (void)configureView; @end @implementation DetailViewController - (void)setDetailItem:(RoomItem *)newDetailItem { if (_detailItem != newDetailItem) { _detailItem = newDetailItem; // Update the view. [self configureView]; } } - (void)configureView { // Update the user interface for the detail item. if (self.detailItem) { [_roomTxt setText:[_detailItem room]]; [_buildingTxt setText:[_detailItem building]]; [_dateTxt setText:[self dateCreatedString]]; [_buildingImageView setImage:[_detailItem buildingImage]]; _oi = [_detailItem objectIndex]; } } </code></pre> <p><strong>MasterViewController (root table view) methods that alloc and init new and existing detailViewControllers</strong></p> <pre><code>- (void)insertNewObject:(id)sender { //add button invokes this DetailViewController *ivc = [[DetailViewController alloc] init]; [self.navigationController pushViewController:ivc animated:YES]; NSLog(@"detailViewController allocated and initialized: %@", ivc); } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (!self.detailViewController) { self.detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; NSLog(@"detailViewController initialized: %@", self.detailViewController); } //navigates to detailViewController and passes it the item's data self.detailViewController.detailItem = [[[RoomList sharedStore] getAllItems] objectAtIndex:[indexPath row]]; [self.navigationController pushViewController:self.detailViewController animated:YES]; } </code></pre> <p><strong>Here is the tableView:didSelectRowAtIndexPath method that should be passing everything needed by the detail view controller, from the RoomList:sharedStore:</strong></p> <pre><code>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (!self.detailViewController) { self.detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; } //navigates to detailViewController and passes it the item's data self.detailViewController.detailItem = [[[RoomList sharedStore] getAllItems] objectAtIndex:[indexPath row]]; [self.navigationController pushViewController:self.detailViewController animated:YES]; } </code></pre> <p><strong>...and the RoomItem.m file:</strong></p> <pre><code>- (void)awakeFromFetch { [super awakeFromFetch]; UIImage *pic = [UIImage imageWithData:[self buildingThumbnailData]]; [self setPrimitiveValue:pic forKey:@"buildingThumbnail"]; } - (id)initWithRoom:(NSString *)room Building:(NSString *)building { self = [super init]; if (self) { [self setRoom:room]; [self setBuilding:building]; } return self; } </code></pre> <p><strong>DetailViewController.h</strong></p> <pre><code>#import &lt;UIKit/UIKit.h&gt; @class RoomItem; //pic edit: added delegates @interface DetailViewController : UIViewController &lt;UINavigationControllerDelegate, UIImagePickerControllerDelegate, UITextFieldDelegate, UIPopoverControllerDelegate, UIPageViewControllerDelegate&gt; { __weak IBOutlet UITextField *roomField; __weak IBOutlet UITextField *buildingField; __weak IBOutlet UILabel *dateLabel; UIPopoverController *imagePickerPopover; } @property (nonatomic, strong) RoomItem *detailItem; @property (weak, nonatomic) IBOutlet UIButton *updateBtn; @property (weak, nonatomic) IBOutlet UIButton *detailsBtn; @property (weak, nonatomic) IBOutlet UITextField *roomTxt; @property (weak, nonatomic) IBOutlet UITextField *buildingTxt; @property (weak, nonatomic) IBOutlet UILabel *dateTxt; @property (weak, nonatomic) IBOutlet UIImageView *buildingImageView; @property (weak, nonatomic) UIImage *buildingImage; @property (weak, nonatomic) NSNumber *oi; - (IBAction)backgroundTapped:(id)sender; - (IBAction)takePicture:(id)sender; - (IBAction)updateRoomItem:(id)sender; - (IBAction)goToReportDetails:(id)sender; @end </code></pre> <p><strong>Edit:here is a pseudo-UML diagram that illustrates what I'm seeing when I step through with the debugger (it reads from left to right, top to bottom):</strong> <img src="https://i.stack.imgur.com/HmhJr.jpg" alt="enter image description here"></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload