菜鸟教程小白 发表于 2022-12-13 16:51:54

iphone - 从一个 ViewController 导航到另一个


                                            <p><p>我的 Storyboard中有这个设计:</p>

<p> <img src="/image/RTSTJ.png" alt="enter image description here"/> </p>

<p>如您所见,中间的 ViewController 连接到一个导航 Controller (我只是让导航栏不可见)。在这个中间页面中,我以编程方式添加了所有控件 (<a href="https://parse.com/docs/ios/api/Protocols/PFLogInViewControllerDelegate.html#//api/name/logInViewController:didLogInUser:" rel="noreferrer noopener nofollow">using Parse mobile platform login wizard</a>)。</p>

<p>问题是我想在登录成功后导航到第三页。</p>

<pre><code>- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
    ;
    ViewController2 *viewController = [[ init] autorelease];
    ;
    printf(&#34;%s&#34;, [@&#34;Ali&#34; UTF8String]);
}
</code></pre>

<p>消息将被打印,但导航失败。你能帮我吗?也许我需要在 Storyboard中修复一些东西。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我不确定您是否应该发送 <code>dismissModalViewControllerAnimated:</code> 消息。您是否在登录 ViewController 之上以模态方式呈现另一个 ViewController ?</p>

<p>无论如何,当您在 Storyboard 中配置了 ViewController 时,您无法使用 <code>alloc</code> 和 <code>init</code> 创建 ViewController 。您需要询问 Storyboard 来创建它。有几种方法可以做到这一点。</p>

<h3>一种方式</h3>

<p>让 Storyboard 创建您的 <code>ViewController2</code> 的一种方法是在 Storyboard 中进行推送。</p>

<ol>
<li>打开您的 Storyboard。</li>
<li>Control-从登录 ViewController 拖动到 <code>ViewController2</code>。</li>
<li>选择“推送”segue 类型。</li>
<li>点击转场。</li>
<li>选择 View> 实用工具 > 显示属性检查器。</li>
<li>在 Attributes Inspector(窗口右侧)中,将 segue 标识符设置为“didLogIn”。</li>
</ol>

<p>要执行转场,请执行以下操作:</p>

<pre><code>- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
    ;
    ;
}
</code></pre>

<h3>另一种方式</h3>

<p>另一种让 Storyboard创建您的 <code>ViewController2</code> 的方法是给它一个 Storyboard ID 并要求 Storyboard按 ID 实例化 ViewController 。然后就可以推送 ViewController 了。</p>

<p>在您可以要求 Storyboard 创建它之前,您必须为 Storyboard 中的 <code>ViewController2</code> 实例提供一个“ StoryboardID”。</p>

<ol>
<li>打开您的 Storyboard。</li>
<li>选择 <code>ViewController2</code> 实例。</li>
<li>选择 View> 实用程序 > 显示身份检查器。</li>
<li>在 Identity Inspector(窗口右侧)中,输入“viewController2”。案例很重要!</li>
</ol>

<p>然后,在您的代码中,要求 Storyboard 实例化 <code>viewController2</code>:</p>

<pre><code>- (void)logInViewController:(PFLogInViewController *)logInController didLogInUser:(PFUser *)user {
    ; // Should this be here?
    ViewController2 *viewController = [[ init] autorelease];
    ;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 从一个 ViewController 导航到另一个,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/12827147/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/12827147/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 从一个 ViewController 导航到另一个