Xcode 4.2.1 Storyboard 多对一视图返回

Posted

技术标签:

【中文标题】Xcode 4.2.1 Storyboard 多对一视图返回【英文标题】:Xcode 4.2.1 Storyboard many-to-one view return 【发布时间】:2011-12-03 13:52:51 【问题描述】:

我的设计有一个从多个不同视图调用的“关键”视图。

使用 Xcode Storyboard 如何在用户需要时“推送”键视图然后将其“弹出”以便用户返回正确的视图?

按钮好像只能链接一个返回点?

谢谢 吉姆

【问题讨论】:

您可能必须以编程方式进行。手动设置segue转场等 【参考方案1】:

谢谢,chown - 你是对的。

解决方案是创建一个 UIViewController 子类,然后使用委托协议

DelegateClass.h

#import <UIKit/UIKit.h>

@protocol ReturnToMainMenu <NSObject>
@required
- (void) processSuccessful: (BOOL)success;
@end

@interface Recipe : UIViewController 
    id <ReturnToMainMenu> delegate;


@property (strong) id delegate;

-(IBAction)done:(id)sender;
@end

委托类.m

-(IBAction)backToMainMenu:(id)sender 
    [[self delegate] processSuccessful:YES];

然后在调用类中声明协议

@interface FoodGroup : UIViewController <ReturnToMainMenu>

- (void) processSuccessful:(BOOL)success

    NSLog(@"Process completed");
    [self dismissViewControllerAnimated:YES completion:nil];
    //[self performSelector:@selector(done:)];

【讨论】:

【参考方案2】:

Jim,您的 Recipe 类应该对其委托进行弱引用,以避免在委托及其所有者相互持有引用的保留周期中出现潜在问题,从而阻止正确释放两者。

在 ARC 之前,委托通常是(分配)属性。我不相信 ARC 会以任何方式改变这一点,除了将分配更改为弱。

【讨论】:

以上是关于Xcode 4.2.1 Storyboard 多对一视图返回的主要内容,如果未能解决你的问题,请参考以下文章

打开大型 Main.storyboard 时 Xcode 挂起/意外退出

ios - Xcode 9.4.1 在 main.storyboard 中卡住加载

Xcode 11,使用 Main.storyboard 修复的主界面 [重复]

Xcode 10 Storyboard 非常慢到没有响应的地步

为什么Xcode不能识别Main.storyboard?

使用 StoryBoard 在 Xcode 中命名多个视图