iOS:以编程方式将 Segue 推送到多个 View Controller
<p><p>我有 <strong>一个</strong> 原始 ViewController 和 <strong>四个</strong> 目标 ViewController 。我希望能够 <strong>push</strong> 使用导航 Controller 将原始 ViewController<em>ALL</em> 转移到目标 ViewController 。我试过了……</p>
<pre><code>- (IBAction)notificationsButtonPushed:(id)sender {
NotificationsViewController *notifications = [init];
;
}
- (IBAction)messagesButtonPushed:(id)sender {
MessagesViewController *messages = [ init];
;
}
- (IBAction)settingsButtonPushed:(id)sender {
if (canMessage) {
SettingsViewController *settings = [init];
;
}
else {
NSLog(@"Can't Message");
}
}
- (IBAction)previewButtonPushed:(id)sender {
PreviewViewController *preview = [init];
;
}
</code></pre>
<p>这只是给了我一个没有 UI 组件的空 ViewController 。 </p>
<p><strong>注意</strong>:我也厌倦了“initWithNidName:”并传入了每个目标 ViewController 的storyboardID,它给了我错误:</p>
<pre><code>'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/B7E025E5-D7D2-4FFD-B49C-E10DF5E94C44/LifePoints.app> (loaded)' with name 'preview'
</code></pre>
<p>我也尝试过...( Storyboard segues 设置为“Push”)</p>
<pre><code> - (IBAction)notificationsButtonPushed:(id)sender {
;
}
- (IBAction)messagesButtonPushed:(id)sender {
if (canMessage) {
;
}
else {
NSLog(@"Can't Message");
}
}
- (IBAction)settingsButtonPushed:(id)sender {
;
}
- (IBAction)previewButtonPushed:(id)sender {
;
}
</code></pre>
<p>虽然这确实将目标 ViewController 以适当的转场类型推送到屏幕上,但它确实<strong>不</strong>转场到正确的目标 ViewController 。它似乎只延续到最后一个附加的 Storyboardsegue。</p>
<p>有谁知道如何正确应用它并让它以我正在寻找的形式表现?</p>
<p><strong>编辑</strong></p>
<p>请务必注意,我正在检查“messagesButtonPushed”方法是否满足条件。我正在检查是否允许用户发送消息,如果允许,则转到 VC。 </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您不需要任何代码来实现基本的转场。 </p>
<p>在您的 Storyboard中,确保您的原始 ViewController 嵌入在导航 Controller 中(选择原始 View 并选择编辑->嵌入->导航 Controller )。</p>
<p>然后,您可以简单地控制从四个按钮中的每个按钮拖动到相应的目标 View ,选择“push”作为 segue 类型。然后,您可以单击两个 View 之间的 segue 图标,为每个 segue 指定一个标识符。</p>
<p>您可以删除您的 IBAction 方法以及链接到它们的按钮上的任何操作。</p>
<p>我建议你填写 <a href="http://www.raywenderlich.com/50308/storyboards-tutorial-in-ios-7-part-1" rel="noreferrer noopener nofollow">Storyboard Tutorial</a>了解 Storyboard和转场的工作原理。</p>
<p>如果您确实想以编程方式执行 segue,则可以控制从 View 底部的黄色 ViewController 图标拖动到目的地。然后,您可以根据您的第二个代码使用 <code>performSegueWithIdentifier</code> 调用 segue - 在您的情况下,您可能有两个不同的 segue 并根据购买状态触发商店 segue 或另一个</p></p>
<p style="font-size: 20px;">关于iOS:以编程方式将 Segue 推送到多个 ViewController ,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/24581450/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/24581450/
</a>
</p>
页:
[1]