2011-04-26 78 views
0

我的類是UIView,我不能將它更改爲UIViewController,因爲它被另一個類中的loadNibNamed調用。在UIView類中調用presentModalViewController

我知道presentModalViewController發送消息給UIViewController,所以我如何在我的UIView類中處理這個問題?

這會導致崩潰這是正常的:

[self presentModalViewController .... 

試過,但被叫視圖dosent被拉:

.h 
@class Setting; 
@interface SettingProfile : UIView ... 
Setting *setting; 
@property (nonatomic, retain) Setting *setting; 

.m 
@synthesize setting; 
... 
[setting presentModalViewController .... 

我試圖 this thread但它沒有太大的幫助。

+0

什麼是「設置」的一個子類? – edc1591 2011-04-26 00:26:09

+0

看起來像是一個UIView子類... – RedBlueThing 2011-04-26 00:42:39

+0

設置是UIViewController,我打電話給SettingProfile通過loadNibNamed – 2011-04-26 02:30:48

回答

2

你不能在UIView上使用presentModalViewController,這是行不通的。你有幾個選項:

  • 重構所以你的設置東西是在UIViewController的子類。
  • 將您的設置UIView子類添加爲當前視圖控制器視圖的子視圖。對視圖進行動畫處理,使其像currentModal動畫一樣彈出。

好像你並不熱衷於第一個選項,這樣做第二,你將需要:

  • 設置你的設置UIView的幀進行屏幕之外(斷底)。
  • Start動畫塊。
  • 將設置視圖添加爲主視圖控制器視圖的子視圖。
  • 將框架設置爲在屏幕上(以便動畫塊將視圖從底部屏幕邊緣的下方移動到屏幕上)。
  • Commit動畫塊。
+0

非常感謝RedBlue,第二個選項聽起來是最好的解決方案,我會試一試n讓你知道。 thx再次爲您的及時幫助。 – 2011-04-26 02:28:33

+0

@Artist_inMood沒問題。祝你好運。 – RedBlueThing 2011-04-26 02:29:47

相關問題