ios - 如何通过工具栏按钮替换容器 View ?
<p><p>我想创建一个用户界面,其中有一个导航栏及其按钮,下方有一个工具栏,两者始终可见。然后,我希望底部有一个工具栏,当您点击按钮时,它将替换屏幕中间可见的内容。我会使用 <code>UITabBarController</code> 但我不想要下面的文本标签或图标的图像 - 按钮将是一个 unicode 字符。它们应该是灰色的,然后在选择一个时用浅色填充。我在想这样做的方法是在点击按钮时应用色调,但由于条形按钮没有粘性“选定状态”,我不知道该怎么做。 </p>
<p>我也不确定如何替换中间的内容。我在想我应该创建一个容器,然后从每个按钮创建一个操作方法,该方法将 <code>performSegueWithIdentifier</code> 到一个包含不同内容的不同容器。但是只能嵌入一个 ViewController ——我不能从容器中创建多个 segue。我基本上是在尝试用较小的按钮模拟一个标签栏 Controller ,没有标签,并且屏幕上的整个内容不会在点击按钮时被替换。</p>
<p>我该怎么做呢?我想在 Interface Builder 中完成基本布局,但当然需要一些代码。谢谢!</p>
<p>这基本上是我想要实现的目标:
<img src="/image/BSeUh.png" alt="enter image description here"/> </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>这是我过去的做法。代码位于自定义容器 Controller 中,该 Controller 是嵌入在 Storyboard的容器 View 中的 Controller 。因此,在 viewDidAppear: 中,我将第一个 Controller 添加为子级,并在单击按钮时调用 switchToNewView:。 </p>
<pre><code>@implementation ContainerController
- (void)viewDidAppear:(BOOL)animated {
;
UIViewController *initial = ;
;
;
self.currentController = initial;
;
}
-(IBAction)switchToNewView {
UIViewController *sub = ;
;
sub.view.frame = self.view.bounds;
;
}
-(void)moveToNewController:(UIViewController *) newController {
;
[self transitionFromViewController:self.currentController toViewController:newController duration:.6 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{}
completion:^(BOOL finished) {
;
;
self.currentController = newController;
;
}];
}
</code></pre>
<p>constrainViewEqual 是我为 ControllerView 添加约束的类别方法。看起来是这样的,</p>
<pre><code>-(void)constrainViewEqual:(UIViewController *) vc {
;
NSLayoutConstraint *con1 = ;
NSLayoutConstraint *con2 = ;
NSLayoutConstraint *con3 = ;
NSLayoutConstraint *con4 = ;
NSArray *constraints = @;
;
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 如何通过工具栏按钮替换容器 View ?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/22869856/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/22869856/
</a>
</p>
页:
[1]