ตัวควบคุมการนำทางในป๊อปโอเวอร์

ฉันเป็นมือใหม่ในการพัฒนาแอพ iPad

ฉันสนใจที่จะสร้างแอปพลิเคชันที่ฉันมีป๊อปโอเวอร์ที่แสดงมุมมองตารางพร้อมรายการต่างๆ จากนั้น ฉันเลือกรายการและมุมมองจะเจาะไปยังมุมมองตารางอื่นที่ประกอบด้วยรายการอื่นและปุ่มนำทางย้อนกลับด้วย

ระดับที่ฉันจะเจาะลึกนั้นเป็นแบบไดนามิก

โปรดแนะนำฉันด้วยแหล่งข้อมูลที่เหมาะสมเพื่อช่วยฉันแก้ไขปัญหา


person user640918    schedule 02.03.2011    source แหล่งที่มา
comment
สิ่งที่ฉันกำลังมองหา! :)   -  person Breakpoint    schedule 17.07.2012


คำตอบ (3)


ฉันเคยทำมาก่อนและมันก็ใช้ได้ดี! เพียงกำหนดฟังก์ชันนี้ให้กับปุ่มของคุณ (อาจเป็น UIBarButtonItem):

UIPopoverController *popover;
bool isPopoverOpen = false;
-(void)openPopover{
    if(!isPopoverOpen){
        FirstViewController *firstViewCtrl = [[PartsViewCtrl alloc] init];
        UINavigationController *navbar = [[UINavigationController alloc] initWithRootViewController:firstViewCtrl];
        [firstViewCtrl release];
        navbar.contentSizeForViewInPopover = CGSizeMake(TABLE_WIDTH, TABLE_HEIGHT);
        popover = [[UIPopoverController alloc] initWithContentViewController:navbar];
        [navbar release];
        popover.delegate = self;
        popover.popoverContentSize = CGSizeMake(TABLE_WIDTH, TABLE_HEIGHT);
        [popoverOnPartsView presentPopoverFromBarButtonItem:barButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
        isPopoverOpen = true;
    }else{
        [popover dismissPopoverAnimated:YES];
        [popover release];
        isPopoverOpen = false;
    }
}

และใช้ฟังก์ชันนี้กับ FirstViewController ซึ่งมี UITableView:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    SecondViewController *secondViewController = [[SecondViewController alloc] init];
    [self.navigationController pushViewController:secondViewController animated:YES];
    [secondViewController release];
}

ตอนนี้คุณสามารถเพิ่ม UITableView ไปยัง SecondViewController ได้เช่นกัน และใช้สถานการณ์นี้กับตารางอื่น!

ฉันหวังว่ามันจะได้ผลสำหรับคุณ!

person Hamed Rajabi    schedule 03.11.2011

เมื่อคุณสร้างป๊อปโอเวอร์ คุณเพียงแค่ต้องจัดสรร UINavigationController และใช้สิ่งนี้เพื่อจัดการลำดับชั้นการดูภายในป๊อปโอเวอร์เอง การค้นหาเว็บอย่างรวดเร็วเผยให้เห็นบทช่วยสอนนี้ ซึ่งครอบคลุมสิ่งที่คุณต้องการ ที่จะรู้ว่า.

ฉันยังตั้งใจจะเสริมด้วยว่าคุณควรเร่งความเร็วด้วยการพัฒนา Objective-C และ iOS โดยทั่วไป อย่าพยายามใช้สิ่งที่คุณพบในเน็ตโดยไม่เข้าใจว่าคุณกำลังทำอะไรอยู่ :)

person jdmunro    schedule 02.03.2011
comment
สวัสดีขอบคุณสำหรับการตอบกลับในช่วงต้น ฉันจะดำเนินการและอัปเดตหากได้ผลสำหรับฉัน :) - person user640918; 03.03.2011

Do the following steps 

1) ในการทำงานของปุ่ม (โดยการคลิกที่ปุ่มนั้นจะปรากฏขึ้นมา) ให้เขียนโค้ด

[ที่นี่ PopOverContentViewController เป็น viewController ที่ฉันมีมุมมองตารางและรายการหลายรายการที่ควรแสดงเมื่อป๊อปโอเวอร์มาถึง]

 - (IBAction)callPopOver:(id)sender 
  {


    UIButton *button = (UIButton*)sender;
    PopOverContentViewController1 *popOverContent = [[PopOverContentViewController1     alloc]initWithNibName:@"PopOverContentViewController1" bundle:nil];

    UINavigationController *navbar = [[UINavigationController alloc]  initWithRootViewController:popOverContent];

    navbar.contentSizeForViewInPopover = CGSizeMake(266, 200);
    popover = [[UIPopoverController alloc] initWithContentViewController:navbar];
    popover.delegate = self;
    [popover presentPopoverFromRect:CGRectMake(button.frame.size.width / 2,   button.frame.size.height / 1, 1, 1) inView:button   permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
    [popover setPopoverContentSize:CGSizeMake(266, 200) animated:YES]; 
    [popUpContent release];


    }      

2) ตอนนี้เพื่อเปลี่ยนมุมมองตารางเมื่อคลิกที่แถวใดก็ได้พิมพ์รหัสนี้ใน PopOverViewController.m

[ในที่นี้ PopOverViewController2 คือ ViewController ที่เรามีมุมมองตารางถัดไปที่จะแสดง]

    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    PopOverViewController2 *secondViewController = [[PopOverViewController2 alloc] init];
    [self.navigationController pushViewController:secondViewController animated:YES];
    [secondViewController release];
    }

3) เพื่อหลีกเลี่ยงการเปลี่ยนแปลงขนาดของป๊อปโอเวอร์ในขณะที่การนำทางเขียนโค้ดต่อไปนี้ใน viewDidLoad ของตัวควบคุมมุมมองทั้งสอง (เช่น PopOverContentViewController1 และ PopOverContentViewController2)

 - (void)viewDidLoad
 {
  [super viewDidLoad];
  [self setContentSizeForViewInPopover:CGSizeMake(266, 200)];
 }
person MouzmiSadiq    schedule 11.09.2012