2011-12-03 44 views
0

我的設計具有從幾個不同視圖調用的「關鍵」視圖。Xcode 4.2.1故事板多對一視圖返回

使用Xcode Storyboard如何在用戶需要時「推」關鍵視圖,然後「彈出」關閉視圖以便用戶返回正確的視圖?

看來,該按鈕只能鏈接到一個返回點?

感謝 吉姆

+0

您可能必須以編程方式執行此操作。手動設置切換過渡等 – chown

回答

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 

Delegateclass.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:)]; 
} 
類聲明協議
1

Jim,你的Recipe類應該對它的委託有一個弱引用,以避免代理和它的所有者持有相互引用的保留週期的潛在問題,從而阻止正確的釋放。

ARC之前,代表通常是(分配)屬性。我不相信ARC會以任何方式改變這一點,除了改變分配給弱。