动态更改故事板上的故事板或场景

时间:2012-03-02 12:51:53

标签: xcode ios5 xcode-storyboard

我想用XCode 4.2为iPhone编写应用程序。我使用tabbar来切换这个应用程序的功能。 我需要“情境”:在tabbar中记录一个“情况”,第二个“情况”是登录标签栏。因此我想到了两个想法:要么我使用两个故事板并动态使用故事板,要么只使用一个故事板并使用两个场景(登录并登录)并动态分配viewcontroller。但我不知道我怎么能编程这个.. 你是什​​么意思我必须做什么?我怎么能这样做?

感谢您的回答:)

1 个答案:

答案 0 :(得分:0)

请试试这个。我希望它会对你有所帮助。

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Trainning.animation"
x:Name="Window"
Title="animation"
Width="640" Height="480">
<Window.Resources>
    <Storyboard x:Key="one_in_all">
        <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[1].(GradientStop.Color)" Storyboard.TargetName="btn_animation_1">
            <EasingColorKeyFrame KeyTime="0" Value="#FFF0F0EA"/>
            <EasingColorKeyFrame KeyTime="0:0:0.2" Value="#FF038529"/>
            <EasingColorKeyFrame KeyTime="0:0:0.4" Value="#FFF0F0EA"/>
        </ColorAnimationUsingKeyFrames>
    </Storyboard>
</Window.Resources>

<Grid x:Name="LayoutRoot">
    <Button x:Name="btn_animation_1" Content="Animation1" HorizontalAlignment="Left" Height="54" Margin="187,133,0,0" VerticalAlignment="Top" Width="64" Click="btn_animation_1_Click" />
    <Button x:Name="btn_animation_2" Content="Animation2" Height="54" Margin="310,133,258,0" VerticalAlignment="Top" Click="btn_animation_2_Click" />
</Grid>

中的代码

using System.Windows.Media.Animation;

public partial class animation : Window
{
    string Name;
    public animation()
    {
        this.InitializeComponent();

        // Insert code required on object creation below this point.
    }

    private void btn_animation_1_Click(object sender, RoutedEventArgs e)
    {
        Button button = (Button)sender;
        Name = button.Name;
        Animation_In_All();
    }

    public void Animation_In_All()
    {
        Storyboard SB = (Storyboard)(FindResource("one_in_all"));
        Storyboard.SetTargetName(SB.Children[0], Name);           
        SB.Begin();
    }

    private void btn_animation_2_Click(object sender, RoutedEventArgs e)
    {
        Button button = (Button)sender;
        Name = button.Name;
        Animation_In_All();
    }
}