ios - التنقل داخل إيبوبوفركونترولر




objective-c ipad (2)

عند إنشاء إيبوبوفيركونترولر، بدلا من وضع ميفيوكونترولر داخل إيبوبوفيركونترولر، يجب تعيين إينافيغاتيونكونترولر

    UINavigationController *insidePopoverNavigationController = [[UINavigationController alloc] initWithRootViewController:myViewController];
    popoverController = [[UIPopoverController alloc] initWithContentViewController:insidePopoverNavigationController];
    ...... 
    [popoverController presentPopoverFromRect:... etc];

لدي UIPopoverController التي تتكون من عرض الجدول. هذا البوب ​​على وحدة تحكم عرض جيد، وأنا بالفعل تعيين مندوب didSelectRowAtIndexPath ما يرام.

الآن، أريد إجراء بعض الانتقال إلى "وحدة تحكم عرض التفاصيل" استنادا إلى عنصر الجدول النقر. ثم على وجهة نظر وجهة نظر، لديه زر مرة أخرى مثل pushViewController لكنه لا يعمل بشكل جيد. فإنه لن تنتقل إلى عرض التفاصيل المراقب المالي. هذا هو بلدي didSelectRowAtIndexPath :

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    DetailSummaryViewController *detailVC = [[DetailSummaryViewController alloc] initWithNibName:@"DetailSummaryViewController" bundle:nil];
    [self.navigationController pushViewController:detailVC animated:YES];
}

هذه هي طريقة بوبوبوفر بلدي

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    CalendarCell *cell = (CalendarCell *)[collectionView cellForItemAtIndexPath:indexPath];

    UIPopoverController *popC = [[UIPopoverController alloc] initWithContentViewController:[SummaryViewController new]];
    [popC setPopoverContentSize:CGSizeMake(320, 400)];
    [self setPop:popC];

    [[self pop] presentPopoverFromRect:[cell frame]
                                inView:collectionView
              permittedArrowDirections:UIPopoverArrowDirectionAny
                              animated:YES];
}

تلك الملاحة لن تعمل، ولكن إذا كنت نسلوغ-جي الفهرس المحدد أنه يعمل بشكل جيد. هل هناك بعض الخطوات في إعداد الملاحة التي فاتني؟


كنت متأكدا من وحدة تحكم الملاحة في تحكم بوبوفر الخاص بك، وبالتالي فإن طريقة self.navigationController pushViewController لن تعمل. جرب ذلك أدناه:

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    CalendarCell *cell = (CalendarCell *)[collectionView cellForItemAtIndexPath:indexPath];

    UINavigationController *insidePopoverNavigationController = [[UINavigationController alloc] initWithRootViewController:[SummaryViewController new]];

    UIPopoverController *popC = [[UIPopoverController alloc] initWithContentViewController:insidePopoverNavigationController];
    [popC setPopoverContentSize:CGSizeMake(320, 400)];
    [self setPop:popC];

    [[self pop] presentPopoverFromRect:[cell frame]
                                inView:collectionView
              permittedArrowDirections:UIPopoverArrowDirectionAny
                              animated:YES];
}

ائتمانات إضافية: رايكا دوميترو كريستيان





uipopovercontroller