首页 文章

UINavigationViewController控件UIContainerView嵌入了segue

提问于
浏览
0

我有以下情况:
Main.storyboard

UIViewController嵌入在UINavigationViewController中 . UIViewController附加了一个UINavigationItem,并有一个UIContainerView作为子视图 . UIContainerView有一个嵌入到具有一些静态行的UITableViewController的segue .

我如何才能使用当按下右侧的高级行的小箭头图像时,UIViewContainer的嵌入segue会更改为引用另一个UITableViewController并在UINavigationController上有一个Back按钮,以便用户可以导航回原始UITableViewController(带动画)?

基本上我希望用户能够在设置和高级设置之间切换 .

Things I have tried :我尝试让容器视图嵌入到UINavigationController中 . 第一个UITableViewController被设置为与UINavigationController具有根视图控制器segue关系 . 然后我在箭头(按钮)和另一个UITableViewController之间做了一个show segue . 这样我就可以在设置 - >高级设置 - >设置之间切换,但我有双导航栏 . 一个是我想要的栏,白色一个在上面,另一个是灰色的,出现在下面,后面的按钮显示在哪里 . 我希望它是一个单一的导航栏(白色导航栏) .

Settings Screen

Advanced Settings Screen

使用代码实现我想要的(Objective-C或Swift)没有问题 .

1 回答

  • 0

    最后,我通过添加后退按钮并以编程方式解除“高级设置”视图控制器来完成代码 . 我通过创建一个show segue到“高级设置”UITableView来实现这一目标 . 然后我将UITableViewController子类化:

    @implementation AdvancedSettingsController
    
    - (void)viewDidLoad
    {
      [super viewDidLoad];
    
      UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(goBack)];
      self.navigationController = (UINavigationController*)self.parentViewController;
      self.parentViewController.parentViewController.navigationItem.leftBarButtonItem = backButton;
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
    }
    
    #pragma mark - Table view data source
    
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    {
    #warning Incomplete implementation, return the number of sections
        return 0;
    }
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
    #warning Incomplete implementation, return the number of rows
        return 0;
    }
    
    -(IBAction)goBack
    {
      [self.navigationController popViewControllerAnimated:YES];
    }
    @end
    

    我只是希望使用Xcode构建器来完成自动化过程,因为我不喜欢self.parentViewController.parentViewController的事情,因为如果我更改我的控制器,这将停止工作并且有点难以阅读 .

    End result (webm) - https://webmshare.com/m8Kne

相关问题