ios - 用户执行操作后切换到不同选项卡中的 View Controller
<p><p>我正在处理的应用程序中有以下 Storyboard :</p>
<p> <img src="/image/KWcCk.png" alt="View of my storyboard"/> </p>
<p>在根目录下,我有一个标签栏 Controller 。它链接到两个 ViewController 。</p>
<p>第一个显示用户上传图片的新闻源的 ViewController ( Storyboard底部的那个)。</p>
<p>第二个 View Controller 用于启动拍照并附加一些数据。在最后一步(右上角)中,当触摸导航栏右侧项目中的“保存”时,我希望用户被重定向到新闻源 ViewController ,并传递一些数据。</p>
<p>我尝试使用 segue,它可以工作。数据被传递到新闻源,但选择了错误的选项卡。我使用</p>更改了选定的选项卡
<pre><code>;
</code></pre>
<p>但是再次点击第二个标签,事情就搞砸了。我可以看到新闻源而不是拍照屏幕。如果我再次点击,它会崩溃。</p>
<p>在某些时候,我认为我可能得到了错误的 Storyboard,应该在我的新闻源中实现一个 TabBar 并将拍照作为模态视图处理。 </p>
<p>您知道实现此目的的任何干净方法吗?</p>
<p>谢谢</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您不应该使用普通的转场,它将目标 Controller <strong>添加</strong>到堆栈中。做你想做的最好的方法应该是使用 unwind segue。这是您需要做的粗略草图:</p>
<p>• 在 <code>NewsfeedController</code> 中声明一个展开转场 Action ,例如 <code>(IBAction)unwindFromPictureSaved:(UIStoryboardSegue *)segue</code>;<br/>
• 将<code>SavingPictureController</code> 中的“保存”按钮连接到 Storyboard 中的“退出”图标,然后选择之前定义的方法;<br/>
• 在新创建的展开 segue 中,使用 <code>SavedPictureSegue</code>;<br/> 之类的内容定义其标识符
• 定义要在<code>SavingPictureController</code> 的 header 中传递的数据,例如<code>@property (strong, readonly, nonatomic) id passData</code>;<br/>
• 在<code>SavingPictureController</code> 中实现</p>
<pre><code>-(void)prepareForSegue:(UIStoryboardSegue *)segue
{
if () {
_passedData = // Your data here
}
}
</code></pre>
<p>• 现在,在 <code>NewsfeedController</code> 中实现之前定义的方法并从 <code>(SavingPictureController *)segue.sourceController</code> 获取数据。请务必<code>#import "SavingPictureController.h"</code>。</p></p>
<p style="font-size: 20px;">关于ios - 用户执行操作后切换到不同选项卡中的 ViewController ,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/26125007/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/26125007/
</a>
</p>
页:
[1]