سؤال

مرحبا جميعا. أحاول إدماج UINAVICTONTroller بسيط في تطبيق شريط التبويب الخاص بي. لدي Tabbar مجموعة كمراقب الجذر ويبدو أن كل شيء يعمل بشكل جيد. يتم استدعاء هذه الطريقة بشكل صحيح ولا تنقطع بعد أنها لا تتغير إلى عرض التفاصيل الخاصة بي. أنا ضائع تماما في هذا واحد.

اتبعت تعليمات من هذا الفيديو: http://www.youtube.com/watch؟v=lbnpfatswgw&feature=player_embedded#. وبعد لقد غيرت بعض الأشياء لجعلها تعمل مع ما أحاول إنجازه ولكن المنطق الأساسي الذي تركته نفسه. إنها تعمل مع SDK 2. * وأنا أستخدم 3. *. أفترض أن هذا له علاقة به. يمكن لأي شخص مساعدتي؟ هذا هو ما يبدو أن بلدي didselectrowatindexpath:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Navigation logic may go here. Create and push another view controller.
 NSInteger row = [indexPath row];
 if(self.detailViewController == nil) {
  LogEntryDetailViewController *logEntryDetail = [[LogEntryDetailViewController alloc]
              initWithNibName:@"LogEntryDetailView" bundle:[NSBundle mainBundle]];
  self.detailViewController = logEntryDetail;
  [logEntryDetail release];
 }

 detailViewController.title = [NSString stringWithFormat:@"%@", [logEntriesArray objectAtIndex:row]];

 ProgNameAppDelegate *delegate = (ProgNameAppDelegate *)[[UIApplication sharedApplication] delegate];
 [delegate.logViewNavController pushViewController:self.detailViewController animated:YES];
}

أنا ذاهب المكسرات هنا. إذا كنت بحاجة إلى نشر هذا في مكان آخر سأكون سعيدا بذلك. شكرا مقدما!

هل كانت مفيدة؟

المحلول

يجب عليك تغيير هذه الخطوط:

ProgNameAppDelegate *delegate = (ProgNameAppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate.logViewNavController pushViewController:self.detailViewController animated:YES];

مع هذا:

[self.navigationController pushViewController:detailViewController animated:YES];

إذا كان لديك وحدة تحكم شريط علامة التبويب كما تقول، ثم دفعك detailViewController على delegate.logViewNavController ربما يكون الشيء الخطأ الذي يجب القيام به (اعتمادا على ما delegate.logViewNavController هو ...، ولكن نظرا لأن هذا لا يعمل من أجلك، فإن رهانتي هو أن ارتباكك).

بشكل عام، لا تحتاج إلى تعقيد التعليمات البرمجية الخاصة بك مع الوصول إلى مفوض التطبيق لجلب وحدة تحكم مثل هذا. كل ما عليك فعله هو دفع وحدة تحكم جديدة self.navigationController في معظم الحالات العملية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top