iphone - 单击 NavigationView 中嵌入的弹出窗口后,如何查看最新的 subview ?

标签 iphone ios uinavigationcontroller popover

当点击按钮时,会出现嵌入在 NavigationView 中的 popoverView。 我的代码如下:

  -(IBAction)myStuffPOP:(id)sender
   {
    if(myStuffListViewController ==nil)
    {        
        myStuffListViewController = [[MyStuffListViewController alloc] init]; 
    }
    UINavigationController *navcontroller=[[[UINavigationController alloc] initWithRootViewController:myStuffListViewController] autorelease];
 // Here we create popover controller.
    mystuffPopoverView =  [[UIPopoverController alloc] initWithContentViewController:navcontroller] ;
    CGRect popoverRect = [self.view convertRect:[sender frame] fromView:[sender superview]];

    popoverRect.size.width = MIN(popoverRect.size.width, 100);
    popoverRect.size.height = 40;

    [mystuffPopoverView presentPopoverFromRect:popoverRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

    [navcontroller setNavigationBarHidden:NO];

} 

在 PopoverView 的 NavigationView 中:

1st subView ---> 2nd SubView ---> 3rd Subview

如果我触摸 3rd SubView,PopoverView 就会消失。

我的问题是:

当我再次单击按钮时,我想查看最新的 View - 第三个 subview 而不是第一个 subview 。

最佳答案

  1. 在.h文件中声明UINavigationController *navcontroller;
  2. 仅在 navcontroller 上使用您的 Root View Controller 创建, 例如,在 viewDidLoad 方法中。

    - (void)viewDidLoad {     
        myStuffListViewController = [[MyStuffListViewController alloc] init]; 
        navcontroller=[[UINavigationController alloc] initWithRootViewController:myStuffListViewController]; }
    
  3. 显示具有现有导航堆栈的 UIPopoverController

    -(IBAction)myStuffPOP:(id)sender    {
        //Here we create popover controller.
        mystuffPopoverView =  [[UIPopoverController alloc] initWithContentViewController:navcontroller] ;
        CGRect popoverRect = [self.view convertRect:[sender frame] fromView:[sender superview]];
    
        popoverRect.size.width = MIN(popoverRect.size.width, 100);
        popoverRect.size.height = 40;
    
        [mystuffPopoverView presentPopoverFromRect:popoverRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp
    animated:YES];
        [navcontroller setNavigationBarHidden:NO]; }
    
  4. 不要忘记释放对象

    - (void)dealloc {   
        [myStuffListViewController release];
        [navcontroller release];
    }
    

关于iphone - 单击 NavigationView 中嵌入的弹出窗口后,如何查看最新的 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8211811/

相关文章:

ios - UINavigationController 标题未使用正确的色调

iphone - 使用 ARC 将间接指针隐式转换为 Objective-C 指针

html - iOS 上的模糊文本渲染

ios - 从不同的 View Controller 访问 textField.text 变量

ios - 从 AppDelegate 显示/隐藏 UIAlertController

ios - 横向模态模式在关闭时切换为纵向模式

javascript - uiwebview javascript HTML 仅获取面向用户的正文

iphone - iPhone:UI元素的坐标和大小的常量吗?

iOS : How can I set frame of UILabel according to its text?

ios - subview 调整大小至全屏