私のアプリケーションでは、同じUIViewControllerに到達する2つの別々の方法があります。ストーリーボードを使用して作成された2つの親ViewControllersを経由します。 idとsegueの各遷移を通じて同じUIViewControllerは2つの異なるソースからロードされていますが異なる結果で表示されます
もう1つの方法(私は助けが必要です)は、RootViewControllerで押されたボタンから直接移動し、Eventというカスタム定義のオブジェクトにidを渡すだけです。各遷移のためのコードは、以下である:ボタンから
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSIndexPath *path = [self.tableView indexPathForSelectedRow];
Event *event = [nEventList objectAtIndex:path.row];
EventInfo *eventInfo = segue.destinationViewController; //Create new ViewController
eventInfo.eventID = event.id;
}
:
- (void)FeaturedPressedAction:(id)sender
{
UIButton *button = (UIButton *)sender;
int tag = button.tag;
EventInfo *eventInfo = [[EventInfo alloc] init]; //Create new ViewController
eventInfo.eventID = @"1"; //There is an event with id '1'
[self.navigationController pushViewController:eventInfo animated:YES];
}
とのViewControllerを設定するコード:セグエから
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
UIImage *image = [UIImage imageNamed:@"title.png"];
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:image];
SingletonClass* myapp = [SingletonClass sharedInstance];
events = [myapp getEvents];
// Loop to filter out the events that Do not have this ID
Event *event;
BOOL found = false;
for (int i = 0; i < [events count]; i++) {
if(!found){
event = [events objectAtIndex:i];
if([event.id isEqualToString: eventID]){
found = true;
NSLog(@"Found the event with title %@", event.title);
}
}
}
self.eventTitle.text = event.title;
self.eventLocation.text = event.location;
self.eventDate.text = event.date;
self.eventTime.text = @"22:00";
self.eventDescription.text = event.details;
}
NSLogの左に表示されているように、イベントが正常に見つかりました。ボタンを押したときに表示されるビューはまったくロードされません。どこが間違っていますか?
ありがとう、完璧に働いています。 – SamRowley
喜んで、すべての適切なコードを投稿し、問題をよく説明しました。 – ikuramedia